SQL Server Query Store acquisisce i valori dei parametri?


9

Il nuovo Query Store introdotto in SQL Server 2016 è eccezionale. È un bel sostituto di gran parte di quello che facevo con il vecchio strumento Profiler. Tuttavia, non ho trovato il modo di acquisire i valori dei parametri associati alle singole chiamate alle query che consumano molte risorse. È possibile?

Comprendo che il Query Store gestisce di più i dati aggregati rispetto alle singole chiamate, quindi sospetto che qui potrei essere sfortunato. Quando trovo una query lenta, trovo utile per la risoluzione dei problemi avere anche i parametri associati a una delle sue chiamate più lente. Mi piacerebbe sapere come farlo utilizzando gli strumenti più recenti e più grandi. (Non mi manca usare Profiler!)

Per quanto riguarda la sicurezza, Query Store è meno bloccato rispetto a Profiler? Penso che sia necessario acquisire dati dalle singole chiamate a un certo livello per calcolare gli aggregati. Non sono sicuro se ne memorizza qualcuno.

Risposte:


11

A seconda del piano, dovresti essere in grado di vedere il ParameterCompiledValueparametro per ciascun parametro ispezionando i piani XML salvati sys.query_store_plan.

L'elenco è in genere contenuto verso la fine del piano xml e può essere trovato nel ParameterListnodo.

Questo non fornisce il valore per ogni esecuzione, ma ti dà un'idea di cosa è stato compilato il piano.

Se è davvero necessario ottenere il valore per ogni esecuzione, è possibile creare una sessione Eventi estesi per raccogliere i dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.