none
Duvidas, select de processos ativos

    Pergunta

  • Prezados,

    Uso o seguinte select para listar os processos ativos do SQLServer:

    Select Processo                = spid
    ,Computador           = hostname
    ,Usuario                 = loginame
    ,Status                  = status
    ,BloqueadoPor         = blocked
    ,TipoComando         = cmd
    ,Aplicativo              = program_name
    from    master..sysprocesses
    where status in ('runnable', 'suspended')
    order by blocked desc, status, spid

    Sempre tem retornado as seguintes linhas:

    ''    sa    suspended 0    LOG WRITER ''
    ''    sa    suspended 0    CHECKPOINT ''

    Isso é um problema?

    Saberiam informar algum select para visualizar o total de conexões ativas com o SQLServer?
    Em suma, quero tentar identificar algum consumo excessivo no processamento do SQLServer.

    PS: Uso o SQLSERVER 2005.

    Atc,

    segunda-feira, 18 de agosto de 2008 15:17

Respostas

  • Adriano,

     

    Isso não é um problema não, na verdade estas linhas que estão sendo retornadas representam dois processos internos que o SQL Server executa sempre que uma instrução é processada.

     

    No caso do Log writer, este evento é responsável em armazenar as informações no log de transações do SQL Server.

     

    O Checkpoint, é o evento responsável em checar se as transações que esta sendo processadas devem ser confirmadas e marcadas para que o SQL Server faça a sua execução.

     

    Agora se você deseja verificar todas as conexões ativas no SQL Server, além das possibilidades que o Gustavo destacou, você poderia utilizar a system stored procedure SP_WHO ou SP_WHO2.

    segunda-feira, 18 de agosto de 2008 17:36

Todas as Respostas

  • Boa Tarde,

     

    Sua consulta é interessante, mas eu diria que para o SQL Server 2005 ela está um pouco ultrapassada. Existem diversas DMVs mais diretas e completas que a Sysprocess. Eu recomendaria o seguinte:

     

    Code Snippet

    -- Listar conexões ativas

    SELECT * FROM sys.dm_exec_connections

     

    -- Listar sessões ativas

    SELECT * FROM sys.dm_exec_sessions

     

    -- Listar requisições

    SELECT * FROM sys.dm_exec_requests

     

     

    Lembre-se de que assim como o SQL Server 2000, o SQL Server 2005 reserva os 50 primeiros processos para uso interno. Se quiser monitorar, procure por sessões com o Session_Id acima desse valor.

     

    [ ]s,

     

    Gustavo

     

    segunda-feira, 18 de agosto de 2008 16:40
  • Adriano,

     

    Isso não é um problema não, na verdade estas linhas que estão sendo retornadas representam dois processos internos que o SQL Server executa sempre que uma instrução é processada.

     

    No caso do Log writer, este evento é responsável em armazenar as informações no log de transações do SQL Server.

     

    O Checkpoint, é o evento responsável em checar se as transações que esta sendo processadas devem ser confirmadas e marcadas para que o SQL Server faça a sua execução.

     

    Agora se você deseja verificar todas as conexões ativas no SQL Server, além das possibilidades que o Gustavo destacou, você poderia utilizar a system stored procedure SP_WHO ou SP_WHO2.

    segunda-feira, 18 de agosto de 2008 17:36
  • Obrigado!

    Será de grande valia as orientações.
    segunda-feira, 18 de agosto de 2008 17:42