現象
Microsoft SQL Server では、拡張イベント (xEvents) と動的管理ビュー (DMV) (sys.dm_exec_requestsやsys.dm_exec_query_statsなど) を使用してキャッシュされたクエリ プランを監視しようとすると、キャッシュされたクエリ プランを相互に関連付けるのは非常に困難です。
原因
この問題は、 Query_hash 列と Query_plan_hash 列のデータ型が DMV と xEvents で異なるために発生します。 Query_hash列とQuery_plan_hash列は、DMV (sys.dm_exec_requests と sys.dm_exec_query_stats) で Varbinary データ型として定義されます。 xEvents では、列は UINT64 データ型として定義されます。
解決策
SQL Serverのサービス パック情報
この更新プログラムは、SQL Serverの次のサービス パックで修正されています。
- SQL Server 2014 用 Service Pack 3
- SQL Server 2012 用 Service Pack 4
SQL Serverのサービス パックについて:
Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービス パックの最新の Service Pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。
SQL Serverとそのコンポーネントのバージョン、エディション、および更新レベルを決定する方法
この更新プログラムをインストールすると、 INT64 データ型として定義されている 2 つの列 ( Query_hash_signed と Query_plan_hash_signed) が追加されます。 これにより、DMV と xEvents ( rpc_completed や sql_batch_completedなど) の間でデータを簡単に結合できます。
ビルドSQL Serverについて
SQL Serverの新しい各更新プログラムには、すべての修正プログラムと、以前の更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新のサービス パックを確認してください。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。