none
Últimos comandos executados RRS feed

  • Pergunta

  • Turma, 

    Como faço para identificar o últimos ou últimos comandos executados em um banco de dados?

    Preciso basicamente do comando (select, update, e outros), usuário e se possível qual o comando executado. 

    Valeu !!!!


    Pablicio
    • Movido Gustavo Maia Aguiar terça-feira, 22 de junho de 2010 13:28 (De:SQL Server - Desenvolvimento Geral)
    terça-feira, 22 de junho de 2010 13:20

Todas as Respostas

  • Pablicio,

    Qual a sua intenção? vc consegue ver o comando que um SPId esta executando no momento com o dbcc inputbuffer(<spid>)

    ou se vc tem o SQL 2005 ou 2008, vc pode usar o data collector

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!! Me siga no twitter: @marcelodba
    terça-feira, 22 de junho de 2010 13:26
    Moderador
  • Bom Dia,

    Se você não os capturou em um Trace não há como ter essa informação. Se o usuário disparou o comando e ainda está conectado pode-se obter o último comando através do handle, mas não há garantias com essa suposição, pois, o último comando pode ter sido disparado por alguém que já se desconectou.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Simulado para o Exame 70-433 - MCTS: Microsoft SQL Server 2008 - Database Development – Parte 04
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1091.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 22 de junho de 2010 13:27
  • Encontrei esse código da net:

     

    SELECT deqs.last_execution_time AS [Time], dest.text AS [Query]
    FROM sys.dm_exec_query_stats AS deqs
    CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
    ORDER BY deqs.last_execution_time DESC

     

    Ele é bem interessante, mas ainda preciso do usuário que executou e também não de quanto em quanto tempo ele é limpo. A idéia é uma auditoria no sistema, mas sem trigger, para não pesar o banco de dados.

    valeu !!!


    Pablicio
    • Editado Pablicio terça-feira, 22 de junho de 2010 14:04 Complementação de informação
    • Sugerido como Resposta Felipe GC quinta-feira, 15 de setembro de 2016 21:57
    terça-feira, 22 de junho de 2010 13:49
  • Oi Pablício,

    Essa instrução irá trazer comandos, mas ela não irá trazer o que você deseja. Veja que se alguém se desconectar, não haverá mais conexão, que por sua vez não trará mais sessões e não terá mais requisições o que em outras palavras significa ausência de handle.

    Só será possível capturar os comandos atualmente em execução ou cujo autores ainda estejam conectados. Você não conseguirá descobrir por exemplo quais foram os comandos disparados a 5 minutos atrás se o usuário já tiver se desconectado.

    Recomendo avaliar outras alternativas como o Audit e o SQL Trace. São mais efetivas para o que você está procurando.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Simulado para o Exame 70-433 - MCTS: Microsoft SQL Server 2008 - Database Development – Parte 04
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1091.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 22 de junho de 2010 14:51