KB4016867 - 修正: xEvents のQuery_hash列とQuery_hash_plan列のデータ型が DMV sys.dm_exec_requests および sys.dm_exec_query_stats のデータ型と一致しません

適用先
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Enterprise Core SQL Server 2012 Standard

現象

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のサービス パックについて:

Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービス パックの最新の Service Pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。

SQL Serverとそのコンポーネントのバージョン、エディション、および更新レベルを決定する方法

この更新プログラムをインストールすると、 INT64 データ型として定義されている 2 つの列 ( Query_hash_signedQuery_plan_hash_signed) が追加されます。 これにより、DMV と xEvents ( rpc_completedsql_batch_completedなど) の間でデータを簡単に結合できます。

ビルドSQL Serverについて

SQL Serverの新しい各更新プログラムには、すべての修正プログラムと、以前の更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新のサービス パックを確認してください。

SQL Server 2014 ビルド バージョン

SQL Server 2012 の最新サービス パック

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。