web-dev-qa-db-ja.com

プランキャッシュでコンパイルされたパラメーター値が見つかりません

クエリストアを通じて、平均297582の論理読み取りを実行するクエリを見つけました。

そのクエリを少し調整できるかどうかを確認したかった後、クエリを再度実行して、改善があるかどうかを確認しました。

問題は、キャッシュされたプランでコンパイルされたパラメーター値が見つからなかったことです。

何か不足していますか?たぶん、パラメータ値のキャッシュを妨げる何らかの理由/設定?

実行プランをXMLで開いてもパラメーターが見つかりません。

追加情報:クエリは、ステートメントを準備し、sp_prepareおよびsp_executeを使用して実行するサードパーティアプリケーションによって実行されます。

完全なXMLプラン

クエリストア: Can't find any parameter in the properties tab

キャッシュDMVの計画: Plan cache dmv

3
Mattia Nocerino

sp_prepareは、パラメータの「スニッフィング」を行わないため、パラメータのコンパイルされた値を含みません。クエリを発行すると、統計ヒストグラムではなく密度ベクトルを使用してカーディナリティの推定が行われます。

私は最近、それについてここで一種のブログを書いた:

sp_prepareがsp_executesqlほどパフォーマンスが良くない理由

ブログの投稿を読んでいただければ、この回答で使用した用語のいくつかがもう少し説明されています。

5
Erik Darling