Exibindo as últimas consultas SQL em execução

Olá pessoal,  tudo bem? Espero que tenham tido uma semana de muitos problemas no ambiente de vocês (risos), no qual sempre nos deixa super apreensivos. Afinal de contas, o problema faz parte da nossa rotina, como profissional de tecnologia, assim dizia a lei de Murphy “Se alguma coisa tem chances de sair errado certamente sairá, e da pior maneira possível!“. Por isso a necessidade de nos aperfeiçoarmos sempre para estarmos preparados para definir soluções eficazes e eficientes no ambiente que estamos responsáveis. Busquemos viver os momentos difíceis como uma grande oportunidade de aprender e crescer na profissão de escolhemos seguir. São desses momentos de caus que adquirimos experiências fantásticas e descobrirmos que o profissional experiente é aquele que encara o problema de frente sem medo dos riscos e desafios, seguro que pode dar conta do recado.

Bem, a partir de hoje irei iniciar uma série de exposição de consultas que certamente serão de grande utilidade no dia a dia de um administrador de banco de dados. Serão postagens curtas e objetivas, no qual abordaram informações que podem ser importantes na determinação do comportamento de usuários como até teste de desempenho de um ambiente.

Confesso que a leitura do livro DMVs SQL Server em ação, escrito por Ian W. Stirk tem me ajudado bastante em meu trabalho. Considero um livro de fundamental importância para quem trabalha com administração de bancos de dados SQL Server, pois através de uma gramática de fácil compreensão e de scripts escritos de forma muito simples, tem facilitado bastante a minha vida.

Hoje irei aborda uma instrução que trás informação detalhadas das últimas consultas executadas em um banco de dados. Quem nunca se deparou com o seguinte argumento do usuário: “…o único comando que executei foi…”. Nós sabemos que as vezes sempre a uma discrepância no que o usuário diz quando queremos extrair algo dele para nos ajudar a resolver determinado problema e com o que realmente foi feito por ele.

O script abaixo nos ajudará a eliminar essa diferença.

SELECT c.session_id, s.host_name, s.login_name, s.status
, st.text, s.login_time, s.program_name, *
FROM sys.dm_exec_connections c
INNER JOIN sys.dm_exec_sessions s ON c.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS st
ORDER BY c.session_id

Percebam que estamos usando na consulta objetos DMVs e DMF. É a junção delas que nos trás as informações que precisamos analisar.

DMVs/DMF Descrição
sys.dm_exec_connections Contém detalhes de conexão do SQL Server.
sys.dm_exec_sessions Contém detalhes de sessões do SQL Server
sys.dm_exec_sql_text DMF que retorna ao texto SQL identificado por um lado sql_handle.

Um exemplo abaixo mostra o que a consulta gera como resultado.

1

Por hoje é só. Espero que o script possa contribuir no dia a dia de vocês.

Até a próxima!

Anúncios

Um comentário sobre “Exibindo as últimas consultas SQL em execução

  1. Pingback: Estimando o tempo final dos jobs no SQL Server | Jerfeson Santos

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s