Microsoft では、Microsoft SQL Server 2008 R2、SQL Server 2008 R2 SP1、SQL Server 2008 の修正プログラムを 1 つのダウンロード可能なファイルとして配布しています。 修正プログラムは累積的であるため、新しい各リリースには、以前の SQL Server 2008 R2、SQL Server 2008 R2 SP1、および SQL Server 2008 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。
概要
DBCC CHECKDB コマンドは、パフォーマンスとリソースのニーズのバランスを取ります。 そのため、データベースの整合性チェックを実行すると、既定では DBCC CHECKDB コマンドによってリソースの使用率が最大化されない場合があります。
たとえば、データベースの整合性チェックを実行すると、 DBCC CHECKDB コマンドによってディスク I/O 使用率が最大化されない場合があります。
解決策
累積的な更新プログラムの情報
SQL Server 2008 Service Pack 2
この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積的な更新プログラム 9 で最初にリリースされました。 この累積的な更新プログラム パッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
SQL Server 2008 Service Pack 2 の2673382累積的な更新プログラム パッケージ 9
注 : ビルドは累積的であるため、新しくリリースされたパッケージには、それ以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、以下のサポート技術情報を参照してください。
2402659 2008 Service Pack 2 のリリース後にリリースされた SQL Server 2008 ビルドSQL Server
Microsoft SQL Server 2008 修正プログラムは、特定のSQL Server サービス パック用に作成されます。 SQL Server 2008 Service Pack 2 のインストールには、SQL Server 2008 Service Pack 2 修正プログラムを適用する必要があります。 既定では、SQL Server Service Pack で提供されるすべての修正プログラムは、次のSQL Server サービス パックに含まれます。
SQL Server 2008 Service Pack 3
この問題の修正プログラムは、SQL Server 2008 Service Pack 3 の累積的な更新プログラム 4 で最初にリリースされました。 この累積的な更新プログラム パッケージの詳細については、Microsoft サポート技術情報の次の記事を参照してください。
SQL Server 2008 Service Pack 3 用の 2673383 累積的な更新プログラム パッケージ 4
注 : ビルドは累積的であるため、新しくリリースされたパッケージには、それ以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 Microsoft では、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、以下のサポート技術情報を参照してください。
2629969 2008 Service Pack 3 のリリース後にリリースされた SQL Server 2008 ビルドSQL Server
Microsoft SQL Server 2008 修正プログラムは、特定のSQL Server サービス パック用に作成されます。 SQL Server 2008 Service Pack 3 のインストールには、SQL Server 2008 Service Pack 3 修正プログラムを適用する必要があります。 既定では、SQL Server Service Pack で提供されるすべての修正プログラムは、次のSQL Server サービス パックに含まれます。
SQL Server 2008 R2 用の累積的な更新プログラム パッケージ 11
この問題の修正プログラムは、累積的な更新プログラム 11 で最初にリリースされました。 SQL Server 2008 R2 のこの累積的な更新プログラム パッケージを取得する方法の詳細については、Microsoft サポート技術情報の次の記事を参照してください。
SQL Server 2008 R2 の2633145累積的な更新プログラム パッケージ 11
メモビルドは累積的であるため、新しい修正プログラムの各リリースには、すべての修正プログラムと、以前のSQL Server 2008 R2 修正リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、以下のサポート技術情報を参照してください。
981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド
SQL Server 2008 R2 SP1 用の累積的な更新プログラム パッケージ 4
この問題の修正プログラムは、累積的な更新プログラム 4 で最初にリリースされました。 SQL Server 2008 R2 SP1 のこの累積的な更新プログラム パッケージを取得する方法の詳細については、Microsoft サポート技術情報の次の記事を参照してください。
SQL Server 2008 R2 SP1 の2633146累積的な更新プログラム パッケージ 4
メモビルドは累積的であるため、新しい修正プログラムの各リリースには、すべての修正プログラムと、以前のSQL Server 2008 R2 SP1 修正リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、以下のサポート技術情報を参照してください。
2567616 2008 R2 SP1 のリリース後にリリースされた SQL Server 2008 R2 ビルドSQL Server
SQL Server 2012
SQL Server 2012 には、これらの修正プログラムのコードの変更が含まれています。 以下に説明するように、トレース フラグ 2562 と 2549 の両方が、SQL Server 2012 にも適用されます。 ただし、DBCC_MULTIOBJECT_SCANNER ラッチの競合を減らすための修正では、SQL Server 2012 のトレース フラグ 2562 は必要ありません。 これらの変更は、SQL Server 2012 に既定で含まれていました。
追加情報
この累積的な更新プログラムでは、ユーザーが DBCC CHECKDB コマンドを実行するときにディスク I/O リソースの使用率を最大限に高めるために、2 つのトレース フラグが導入されています。 これらの改善はPHYSICAL_ONLYオプションのみを対象としていますが、PHYSICAL_ONLY オプションを使用しない DBCC CHECKDB コマンドの全体的なパフォーマンスも向上する可能性があります。
トレース フラグ 2562
このトレース フラグには、次の変更が含まれています。
- データベース内のインデックスの数に関係なく、 DBCC CHECKDB コマンドを 1 つの "batch" で実行します。 既定では、 DBCC CHECKDB コマンドは、"バッチ" の概念を使用して生成されるインデックスまたは "ファクト" の数を制限することで 、tempdb リソースを最小限に抑えようとします。 このトレース フラグは、すべての処理を 1 つのバッチに強制します。
- データベースから読み取るページを決定するための内部処理を改善します。 これにより、 DBCC_MULTIOBJECT_SCANNER ラッチの競合が軽減されます。
このトレース フラグを使用する効果の 1 つは、 tempdb の領域要件が増加する可能性があるということです。 Tempdb は、 DBCC CHECKDB コマンドによって処理されているユーザー データベースの最大 5% 以上に増加する可能性があります。 そのため、このトレース フラグを使用して自動拡張を回避すると、DBCC CHECKDB コマンドのパフォーマンスが低下する可能性があるため、tempdb のサイズをデータベース サイズの少なくとも 5% に事前に設定することをお勧めします。
メモ トレース フラグ 2562 は、セッション レベルのトレース フラグです。 セッション レベルで有効にすることができます。
トレース フラグ 2549
DBCC CHECKDB コマンドは、すべてのデータベース・ファイルにわたって固有のディスク・ドライブごとに読み取るページの内部リストを作成します。 このロジックは、各ファイルの物理ファイル名のドライブ文字に基づいて、一意のディスク ドライブを決定します。 基になるディスクがドライブ文字の場合と一意でない場合、 DBCC CHECKDB コマンドはこれらを 1 つのディスクとして扱います。 このトレース フラグが有効になっている場合、各データベース ファイルは一意のディスク ドライブ上にあると見なされます。 各ファイルが一意の物理ディスクに基づいていることがわかっている場合を除き、このトレース フラグを使用しないでください。
メモ トレース フラグ 2549 はグローバル トレース フラグです。 これを有効にするには、スタートアップ パラメーターとして使用するか、 DBCC TRACEON (2549,-1) を使用する必要があります。
これらのトレース フラグを使用すると、 DBCC CHECKDB オプションの使用をターゲットとする DBCC CHECKDB コマンドのパフォーマンスが向上しますが、一部のユーザーにはパフォーマンスの向上が見られない場合があります。 これらのトレース フラグによってディスク I/O リソースの使用量が向上しますが、ディスク リソースの基になるパフォーマンスによって 、DBCC CHECKDB コマンドの全体的なパフォーマンスが制限される場合があります。
次の制限事項に注意してください。
- パフォーマンスの向上は、 修復 オプションを使用するときにパフォーマンスを向上させるために設計されていません。
たとえば、 REPAIR_ALLOW_DATA_LOSS オプションを使用する場合、パフォーマンスの向上はパフォーマンスを向上させるために設計されていません。 - この機能強化は 、DBCC CHECKALLOC コマンドには影響しません。
- この機能強化は、多数のページを含むインデックスに対する DBCC CHECKTABLE コマンドのパフォーマンスに役立つ場合があります。 ただし、 DBCC CHECKTABLE コマンドのパフォーマンスを向上させるために、この機能強化は対象とされていません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。