¿SQL Server Query Store captura los valores de los parámetros?

9

El nuevo Query Store introducido en SQL Server 2016 es genial. Es un buen reemplazo para gran parte de lo que solía hacer con la herramienta Profiler más antigua. Sin embargo, no he encontrado una manera de capturar los valores de los parámetros asociados con las llamadas individuales a las consultas que consumen muchos recursos y las detecta. es posible?

Entiendo que Query Store se ocupa más de datos agregados que de llamadas individuales, por lo que sospecho que podría no tener suerte aquí. Cuando encuentro una consulta lenta, me resulta útil para la resolución de problemas tener también los parámetros asociados con una de sus llamadas más lentas. Me gustaría saber cómo hacer esto usando las últimas y mejores herramientas. (¡No extraño usar Profiler!)

En cuanto a la seguridad, ¿Query Store está menos bloqueado que Profiler? Creo que es necesario capturar datos de llamadas individuales en algún nivel para calcular los agregados. Simplemente no estoy seguro si almacena algo de eso.

Todd Menier
fuente

Respuestas:

11

Dependiendo del plan, debería poder ver los ParameterCompiledValueparámetros de cada parámetro inspeccionando los planes XML guardados en sys.query_store_plan.

La lista generalmente está contenida hacia el final del plan xml y se puede encontrar en el ParameterListnodo.

Esto no proporciona el valor para cada ejecución, pero le da una idea de con qué se compiló el plan.

Si realmente necesita obtener el valor para cada ejecución, puede crear una sesión de Eventos extendidos para recopilar los detalles.

Max Vernon
fuente