Quais são os impactos práticos do aviso sys.dm_exec_query_stats na documentação?

10

A documentação para sys.dm_exec_query_statsafirma o seguinte:

Uma consulta inicial de sys.dm_exec_query_stats pode produzir resultados imprecisos se houver uma carga de trabalho atualmente em execução no servidor. Resultados mais precisos podem ser determinados executando novamente a consulta.

Às vezes, eu pergunto essa DMV durante uma carga de trabalho ativa e prefere resultados precisos. Não sei como aplicar o aviso acima na prática. Devo sempre consultar o DMV duas vezes e usar o segundo conjunto de resultados, porque isso será mais preciso? Isso parece um pouco rebuscado. Preciso estar ciente das maneiras pelas quais o DMV pode ser impreciso para que eu possa incluir isso na minha análise? Nesse caso, que tipo de imprecisões podem aparecer: linhas ausentes, valores desatualizados, linhas inconsistentes ou outra coisa?

Quais são as práticas recomendadas ao usar sys.dm_exec_query_statsdurante uma carga de trabalho ativa?

Joe Obbish
fonte

Respostas:

6

Atualizei a documentação para ser mais direta com o texto. A intenção era informar ao usuário que a execução de uma consulta no DMV produzirá saída apenas para itens que foram concluídos e não para itens em andamento. Portanto, execute a carga de trabalho em sua totalidade para garantir que tudo seja capturado.

A nova redação será a seguinte e aplicará as várias DMVs em que a redação anterior foi incorporada.

Os resultados de sys.dm_exec_query_stats podem variar a cada execução, pois os dados refletem apenas consultas concluídas e não ainda em andamento.

Sean Gallardy
fonte
4

Não sei como aplicar o aviso acima na prática.

Isso é porque é vago. Há um espaço no final da página de documentação para deixar comentários. Essa é a única maneira de alguém examinar o histórico dessa página de documentação e ver por que esse aviso foi adicionado, se ainda é necessário ou precisa ser atualizado.

Analisei rapidamente a implementação no SQL Server 2017 CU 15 e parece que não há um motivo especial para esperar inconsistência (ou "imprecisão"), além dos totais apenas serem atualizados no final de cada execução de instrução .

Paul White 9
fonte