O SQL Server Query Store captura valores de parâmetro?

9

O novo Query Store introduzido no SQL Server 2016 é ótimo. É um bom substituto para muito do que eu costumava fazer com a ferramenta Profiler mais antiga. No entanto, não encontrei uma maneira de capturar valores de parâmetros associados a chamadas individuais para as consultas que consomem muitos recursos. Isso é possível?

Entendo que o Query Store lida mais com dados agregados x chamadas individuais, então suspeito que talvez eu esteja sem sorte aqui. Quando encontro uma consulta lenta, acho útil que a solução de problemas também tenha os parâmetros associados a uma das chamadas mais lentas. Gostaria de saber como fazer isso usando as melhores e mais recentes ferramentas. (Não sinto falta de usar o Profiler!)

Em termos de segurança, o Query Store é menos bloqueado que o Profiler? Eu acho que ele precisa capturar dados de chamadas individuais em algum nível para calcular agregados. Só não tenho certeza se ele armazena alguma coisa.

Todd Menier
fonte

Respostas:

11

Dependendo do plano, você deve ser capaz de ver a ParameterCompiledValuepara cada parâmetro inspecionando os planos XML salvos em sys.query_store_plan.

A lista geralmente está contida no final do plano xml e pode ser encontrada no ParameterList

Isso não fornece o valor para cada execução, mas fornece uma idéia do que o plano foi compilado.

Se você realmente precisar obter o valor de cada execução, poderá criar uma sessão de Eventos Estendidos para reunir os detalhes.

Max Vernon
fonte