修正: 管理データ ウェアハウス データベースが非常に大きくした後、SQL Server 2008 でデータ コレクター機能を有効にします。

マイクロソフトは、1 つのダウンロード可能なファイルとして Microsoft SQL Server 2008の修正プログラムを配布します。修正プログラムは累積的であるため、新しいリリースごとにすべての修正プログラムが含まれていて、以前の SQL Server 2008 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。

現象

Microsoft SQL Server 2008 では、データ コレクター機能を有効にすた後管理データ ウェアハウス データベースが非常に大きくで、ディスク領域を使い果たす可能性があります。

さらに、次のクエリを実行する場合は、snapshots.notable_query_plan または snapshots.notable_query_text のテーブルに多数の孤立した行を検索します。
SELECT COUNT(*)FROM snapshots.notable_query_plan AS qp 
WHERE NOT EXISTS (
SELECT *
FROM snapshots.query_stats AS qs
WHERE qs.[sql_handle] = qp.[sql_handle] AND qs.plan_handle = qp.plan_handle
AND qs.plan_generation_num = qp.plan_generation_num
AND qs.statement_start_offset = qp.statement_start_offset
AND qs.statement_end_offset = qp.statement_end_offset
AND qs.creation_time = qp.creation_time);

SELECT COUNT(*)FROM snapshots.notable_query_text AS qt
WHERE NOT EXISTS (
SELECT *
FROM snapshots.query_stats AS qs
WHERE qs.[sql_handle] = qt.[sql_handle]);

原因

ジェネリックの削除処理は、特定のスナップショット ID に対応するデータを削除します。ただし、クエリ プランの行とクエリ テキスト行に対応しない特定のスナップショットの id。したがって、これらの行は、汎用的な削除プロセスによって削除されません。

解決策

SQL Server 2008

重要 SQL Server 2008 のリリース バージョンを実行している場合、この修正プログラムを使用する必要があります。

この問題に対する修正は、累積的な更新 6 で初めてリリースされました。取得する方法の詳細については、SQL Server 2008 の場合は、この累積的な更新プログラム パッケージは、マイクロソフト サポート技術情報の資料を参照するのには次の資料番号をクリックします。
971490関数形式は、SQL Server 2008 の 6 のパッケージを更新します。
注: ビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムが含まれていて、以前の SQL Server 2008 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。
956909 SQL Server 2008 SQL Server 2008 がリリースされた後にリリースされたビルドします。

SQL Server 2008 Service Pack 1

重要 SQL Server 2008 Service Pack 1 を実行している場合、この修正プログラムを使用する必要があります。


この問題の修正プログラムは、SQL Server 2008 Service Pack 1 の累積的な更新 4 で初めてリリースされました。この累積的な更新プログラム パッケージの詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
973602関数形式は、SQL Server 2008 Service Pack 1 の 4 のパッケージを更新します。
注: ビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムが含まれていて、以前の SQL Server 2008 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。
970365 SQL Server 2008 SQL Server 2008 Service Pack 1 がリリースされた後にリリースされたビルドします。
特定の SQL Server のサービス パックには、Microsoft SQL Server 2008 の修正プログラムが作成されます。SQL Server 2008 Service Pack 1 のインストールには、SQL Server 2008 Service Pack 1 の修正プログラムを適用する必要があります。既定では、SQL Server のサービス パックで提供されているすべての修正プログラムは次の SQL Server のサービス パックに含まれます。

回避策

この問題を回避するのにには、これらの孤立した行を削除するのには管理データ ウェアハウス データベースに次のスクリプトを使用します。
-- Purge snapshots.notable_query_plan table DECLARE @delete_batch_size bigint;
DECLARE @rows_affected int;
SET @delete_batch_size = 500;
SET @rows_affected = @delete_batch_size;
WHILE (@rows_affected = @delete_batch_size)
BEGIN
DELETE TOP (@delete_batch_size) snapshots.notable_query_plan
FROM snapshots.notable_query_plan AS qp
WHERE NOT EXISTS (
SELECT *
FROM snapshots.query_stats AS qs
WHERE qs.[sql_handle] = qp.[sql_handle] AND qs.plan_handle = qp.plan_handle
AND qs.plan_generation_num = qp.plan_generation_num
AND qs.statement_start_offset = qp.statement_start_offset
AND qs.statement_end_offset = qp.statement_end_offset
AND qs.creation_time = qp.creation_time);
SET @rows_affected = @@ROWCOUNT;
RAISERROR ('Deleted %d orphaned rows from snapshots.notable_query_plan', 0, 1, @rows_affected) WITH NOWAIT;
END;

-- Purge snapshots.notable_query_text table
SET @rows_affected = @delete_batch_size;
WHILE (@rows_affected = @delete_batch_size)
BEGIN
DELETE TOP (@delete_batch_size) snapshots.notable_query_text
FROM snapshots.notable_query_text AS qt
WHERE NOT EXISTS (
SELECT *
FROM snapshots.query_stats AS qs
WHERE qs.[sql_handle] = qt.[sql_handle]);
SET @rows_affected = @@ROWCOUNT;
RAISERROR ('Deleted %d orphaned rows from snapshots.notable_query_text', 0, 1, @rows_affected) WITH NOWAIT;
END;

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

関連情報

SQL Server の増分サービス モデルについては、次の記事番号をクリックして、マイクロソフト サポート技術情報の記事を参照してください。

935897 「の増分サービス モデルは、SQL Server チームは、報告された問題に対する修正プログラムを提供



SQL Server の更新プログラムの名前付けスキーマの詳細については、マイクロソフト サポート技術情報の資料を参照するのには次の資料番号をクリックします。

822499Microsoft SQL Server ソフトウェア更新プログラム パッケージに新しい命名方式


ソフトウェア更新プログラムの用語の詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料を参照してください。
824684マイクロソフトのソフトウェア更新プログラムを記述するために使用される一般的な用語説明
プロパティ

文書番号:970014 - 最終更新日: 2017/02/06 - リビジョン: 1

フィードバック