SQL Serverクエリストアはパラメーター値をキャプチャしますか?


9

SQL Server 2016で導入された新しいクエリストアは素晴らしいです。これは、以前のプロファイラーツールで行っていた処理の多くを置き換えるのに最適です。ただし、リソースを大量に消費するクエリへの個々の呼び出しに関連するパラメータ値をキャプチャして、それを傍受する方法は見つかりませんでした。これは可能ですか?

Query Storeは個別の呼び出しよりも集計データを扱うことを理解しているので、ここでは運が悪いのではないかと思います。遅いクエリを見つけたとき、最も遅い呼び出しの1つに関連付けられたパラメータも持つとトラブルシューティングに便利です。最新の優れたツールを使用してこれを行う方法を知りたいのですが。(プロファイラーの使用をお見逃しなく!)

セキュリティの観点から、Query Storeはプロファイラーよりもロックダウンされていますか?集計を計算するには、あるレベルで個々の呼び出しからデータをキャプチャする必要があると思います。それのいずれかが格納されているかどうかはわかりません。

回答:


11

プランによっては、にParameterCompiledValue保存されているXMLプランを調べることで、各パラメーターのを確認できるはずsys.query_store_planです。

リストは通常​​、xmlプランの終わり頃に含まれており、ParameterListノードで見つけることができます。

これはすべての実行の価値を提供するわけではありませんが、計画がどのようにコンパイルされたかについてのアイデアを提供します。

各実行の値を本当に取得する必要がある場合は、拡張イベントセッションを作成して詳細を収集できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.