A documentação para sys.dm_exec_query_stats
afirma o seguinte:
Uma consulta inicial de sys.dm_exec_query_stats pode produzir resultados imprecisos se houver uma carga de trabalho em execução no servidor. Resultados mais precisos podem ser determinados executando novamente a consulta.
Às vezes, consulto esse DMV durante uma carga de trabalho ativa e prefiro 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 exagerado. Preciso estar ciente das maneiras pelas quais o DMV pode ser impreciso para poder levar isso em consideração na minha análise? Em caso afirmativo, 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_stats
durante uma carga de trabalho ativa?
Eu atualizei a documentação para ser mais direto no texto. A intenção era informar ao usuário que a execução de uma consulta no DMV produziria saída apenas para itens que foram concluídos e não para itens em andamento. Assim, execute a carga de trabalho em sua totalidade para garantir que tudo seja capturado.
A nova redação será a seguinte e aplicada aos diversos Detran em que a redação anterior foi incorporada.
Isso porque é vago. Há um espaço no final da página de documentação para deixar comentários. Essa é praticamente a única maneira de alguém poder 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.
Dei uma olhada rápida na implementação no SQL Server 2017 CU 15 e parece que não há motivo especial para esperar inconsistência (ou "imprecisão"), além dos totais serem atualizados apenas no final de cada execução de instrução .