Postagens

Mostrando postagens de junho, 2022

Você sabe o que são (statements, batchs, query_hash e query_plan_hash) no SQL SERVER?

Imagem
    Hello people! Espero que estejam todos ótimo :)     Hoje eu gostaria de falar sobre uma sopa de palavras, mas que são muito importantes para o entendimento do sql server. resolvi escrever sobre esses termos, pois vejo que alguns DBAs possuem dúvidas sobre, ou até mesmo desconhecem. Irei começar explicando sobre o BATCH e o STATEMENT, abaixo um resumo de cada palavra BATCH:  No Transact-SQL, um lote é um conjunto de instruções SQL enviadas juntas e executadas como um grupo, uma após a outra.  STATEMENT: É uma unidade atômica de trabalho e é completamente bem-sucedida ou falha completamente. Agora que sabemos o que cada uma dessa palavra significa, segundo a própria Microsoft, vou mostrar um exemplo, onde podemos ver um BATCH que possui 3 statements: Agora que você sabe o que é um BATCH e um STATEMENT, vamos reutilizar o exemplo acima para explicar o que é QUERY_HASH E UM QUERY_PLAN_HASH, mas antes vamos  as definições: QUERY_HASH :  Valor de hash binário calculado na consulta e usad

Usando extend event para verificar quantas vezes uma query executou no banco.

Imagem
      Olá pessoal, espero que estejam todos bem!          Hoje vim trazer para vocês uma maneira de contar quantas vezes uma determinada query foi executada no SQL-SERVER.   Vamos utilizar o extend event para fazer essa contagem.   Primeiro passo é descobrir qual é o queryhash dessa query, queryhash é o identificador da query, podemos pegar esse queryhash recuperando o plano de execução ou via DMV, irei demonstrar pegando pelo plano de execução: Agora que pegamos o queryhash, que nesse caso é "0xBA334941B40ABB82", precisamos converter ele para bigint, pois o tipo de dados do extend event é diferente do tipo de dados do plano de execução. Agora vamos pegar esse número e construir um  extend event com os eventos abaixo: sp_statement_completed sql_batch_completed sql_statement_completed Para facilitar a vida de todos, eu vou deixar o script criado e vocês só precisam trocar  os campos em vermelhos, os 3 primeiros marcados é o queryhash convertido para query_hash_signed e o últim