none
Quantidade de Login no SQL Server 2008 RRS feed

  • Pergunta

  • Olá pessoal,

    Desculpe a pergunta que eu irei fazer, mas é uma duvida que me surgiu e não achei uma resposta buscando informações na internet.

    Eu gostaria de saber se tem algum script, que me retorna a quantidade de acesso que eu estou tendo na minha base, em tempo real.

    Desde já

    Grato

    Rafael Dantas

    sexta-feira, 20 de dezembro de 2013 19:02

Respostas

  • Boa tarde,

     veja se essa query te ajuda:

    SELECT status, client_net_address as [IP do cliente],
    p.hostname as [Nome da máquina do cliente],
    [text] as [Texto da consulta], SPID,
    DB_NAME(p.dbid) as [Nome do BD no qual foi executada a query],
    p.[program_name] as [Programa solicitante]
    FROM sys.dm_exec_connections c
    INNER JOIN sys.sysprocesses p on c.session_id = p.spid
    CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS ST
    where STATUS IN ('RUNNABLE', 'RUNNING', 'SUSPENDED') 
    ORDER BY STATUS

    Ela retorna tudo que está acontecendo no servidor em tempo real.

    Pode usar também a SP_WHO2.

    Se você quiser apenas logins, você pode usar a auditoria, e acompanhar pelo log.


    sexta-feira, 20 de dezembro de 2013 19:16
  • Rafael,

    Se você quer saber a quantidade exata de conexões/acessos em um banco de dados determinado, utilize a consulta como indicado no exemplo abaixo:

    SELECT  
    db_name(dbid) as Banco_de_Dados 
    ,count(dbid) as Qtd_Conexoes
    FROM sys.sysprocesses
    WHERE dbid > 50 
    and db_name(dbid) = '<BANCO>'
    GROUP BY dbid, loginame
    

    O dbid deve ser maior que 50 para excluir deste retorno conexões de tarefas administrativas do próprio SQL Server.

    Se for útil para você, não esqueça de votar !
    Abraços,
    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 20 de dezembro de 2013 20:08

Todas as Respostas

  • Boa tarde,

     veja se essa query te ajuda:

    SELECT status, client_net_address as [IP do cliente],
    p.hostname as [Nome da máquina do cliente],
    [text] as [Texto da consulta], SPID,
    DB_NAME(p.dbid) as [Nome do BD no qual foi executada a query],
    p.[program_name] as [Programa solicitante]
    FROM sys.dm_exec_connections c
    INNER JOIN sys.sysprocesses p on c.session_id = p.spid
    CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS ST
    where STATUS IN ('RUNNABLE', 'RUNNING', 'SUSPENDED') 
    ORDER BY STATUS

    Ela retorna tudo que está acontecendo no servidor em tempo real.

    Pode usar também a SP_WHO2.

    Se você quiser apenas logins, você pode usar a auditoria, e acompanhar pelo log.


    sexta-feira, 20 de dezembro de 2013 19:16
  • Rafael,

    Se você quer saber a quantidade exata de conexões/acessos em um banco de dados determinado, utilize a consulta como indicado no exemplo abaixo:

    SELECT  
    db_name(dbid) as Banco_de_Dados 
    ,count(dbid) as Qtd_Conexoes
    FROM sys.sysprocesses
    WHERE dbid > 50 
    and db_name(dbid) = '<BANCO>'
    GROUP BY dbid, loginame
    

    O dbid deve ser maior que 50 para excluir deste retorno conexões de tarefas administrativas do próprio SQL Server.

    Se for útil para você, não esqueça de votar !
    Abraços,
    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 20 de dezembro de 2013 20:08