¿Cuáles son los impactos prácticos de la advertencia sys.dm_exec_query_stats en la documentación?

10

La documentación para sys.dm_exec_query_statsdeclara lo siguiente:

Una consulta inicial de sys.dm_exec_query_stats podría producir resultados inexactos si hay una carga de trabajo ejecutándose actualmente en el servidor. Se pueden determinar resultados más precisos volviendo a ejecutar la consulta.

A veces consulto ese DMV durante una carga de trabajo activa y prefiero resultados precisos. No sé cómo aplicar la advertencia anterior en la práctica. ¿Debo consultar siempre el DMV dos veces y usar el segundo conjunto de resultados porque será más preciso? Eso se siente un poco exagerado. ¿Debo ser consciente de las formas en que el DMV puede ser inexacto para poder tenerlo en cuenta en mi análisis? Si es así, ¿qué tipo de inexactitudes pueden aparecer: filas faltantes, valores obsoletos, filas inconsistentes u otra cosa?

¿Cuáles son las mejores prácticas cuando se usa sys.dm_exec_query_statsdurante una carga de trabajo activa?

Joe Obbish
fuente

Respuestas:

6

He actualizado la documentación para ser más directo en la redacción. La intención era decirle al usuario que ejecutar una consulta en el DMV producirá resultados solo para los elementos que se completaron y no para los elementos en vuelo. Por lo tanto, ejecute la carga de trabajo en su totalidad para asegurarse de que todo esté capturado.

La nueva redacción será la siguiente y aplicará los diversos DMV en los que se incorporó la redacción anterior.

Los resultados de sys.dm_exec_query_stats pueden variar con cada ejecución ya que los datos solo reflejan las consultas finalizadas y no las que aún están en curso.

Sean Gallardy
fuente
4

No sé cómo aplicar la advertencia anterior en la práctica.

Eso es porque es vago. Hay un espacio al final de la página de documentación para dejar comentarios. Esa es prácticamente la única forma en que alguien podrá ver el historial de esa página de documentación y ver por qué se agregó esa advertencia, si aún es necesaria o si necesita actualizarse.

Eché un vistazo rápido a la implementación en SQL Server 2017 CU 15 y parece que no hay una razón especial para esperar inconsistencia (o "inexactitud"), aparte de que los totales solo se actualizan al final de la ejecución de cada declaración .

Paul White 9
fuente