次の方法で共有


データベース エンジン チューニング アドバイザー

Microsoft データベース エンジン チューニング アドバイザー (DTA) は、データベースを分析し、クエリのパフォーマンスを最適化するために使用できる推奨事項を作成します。 データベース エンジン チューニング アドバイザーを使用すると、データベース構造や SQL Server の内部について専門家が理解しなくても、インデックス、インデックス付きビュー、またはテーブル パーティションの最適なセットを選択して作成できます。 DTA を使用すると、次のタスクを実行できます。

  • 特定の問題のあるクエリのパフォーマンスのトラブルシューティング

  • 1 つ以上のデータベース間で大量のクエリセットを調整する

  • 潜在的な物理的設計変更の探索的な what-if 分析を実行する

  • 記憶域スペースを管理する

データベース エンジン チューニング アドバイザーの利点

データベース構造とデータベースに対して実行されるクエリを完全に理解しないと、クエリのパフォーマンスの最適化が困難になる場合があります。 データベース エンジン チューニング アドバイザーは、現在のクエリ プラン キャッシュを分析するか、作成した Transact-SQL クエリのワークロードを分析し、適切な物理設計を推奨することで、このタスクを容易にすることができます。 より高度なデータベース管理者向けに、DTA は、さまざまな物理設計の代替手段の探索的な what-if 分析を実行するための強力なメカニズムを公開します。 DTA は次の情報を提供できます。

  • クエリ オプティマイザーを使用してワークロード内のクエリを分析することで、データベースに最適なインデックスの組み合わせを推奨します。

  • ワークロードで参照されるデータベースに対して、アラインされたパーティションまたはアラインされていないパーティションの使用を提案します。

  • ワークロードで参照されるデータベースにインデックス付きビューを推奨します。

  • インデックスの使用、テーブル間のクエリ分散、ワークロードのクエリ パフォーマンスなど、提案された変更の影響を分析します。

  • 少数の問題のあるクエリに対してデータベースを調整する方法をお勧めします。

  • ディスク領域の制約などの高度なオプションを指定して、推奨事項をカスタマイズできます。

  • 特定のワークロードの推奨事項を実装した場合の影響を要約したレポートを提供します。

データベース エンジン チューニング アドバイザーは、次の種類のクエリ ワークロードを処理するように設計されています。

  • オンライン トランザクション処理 (OLTP) クエリのみ

  • オンライン分析処理 (OLAP) クエリのみ

  • OLTP クエリと OLAP クエリの混在

  • クエリ負荷の高いワークロード (データ変更よりも多くのクエリ)

  • 更新負荷の高いワークロード (クエリよりも多くのデータ変更)

DTA コンポーネントと概念

データベース エンジン チューニング アドバイザーのグラフィカル ユーザー インターフェイス
ワークロードを指定し、さまざまなチューニング オプションを選択できる使いやすいインターフェイス。

dta 効用
データベース エンジン チューニング アドバイザーのコマンド プロンプト バージョン。 dta ユーティリティは、データベース エンジン チューニング アドバイザーの機能をアプリケーションとスクリプトで使用するために作成されました。

作業負荷
チューニングするデータベースの代表的なワークロードを含む Transact-SQL スクリプト ファイル、トレース ファイル、またはトレース テーブル。 SQL Server 2012 以降では、プラン キャッシュをワークロードとして指定できます。

XML 入力ファイル
データベース エンジン チューニング アドバイザーがワークロードのチューニングに使用できる XML 形式のファイル。 XML 入力ファイルは、GUI または dta ユーティリティーでは使用できない高度なチューニング・オプションをサポートします。

制限事項と制約条件

データベース エンジン チューニング アドバイザーには、次の制限事項と制限があります。

  • PRIMARY KEY 制約または UNIQUE 制約を適用する一意のインデックスまたはインデックスを追加または削除することはできません。

  • シングル ユーザー モードに設定されているデータベースを分析することはできません。

  • チューニングの推奨事項に使用できる実際の空き領域を超える最大ディスク領域を指定した場合、データベース エンジン チューニング アドバイザーでは指定した値が使用されます。 ただし、推奨スクリプトを実行して実装すると、最初に追加されていないディスク領域が増えると、スクリプトが失敗する可能性があります。 最大ディスク領域は、dta ユーティリティの -B オプションを使用するか、[高度なチューニング オプション] ダイアログ ボックスに値を入力して指定できます。

  • セキュリティ上の理由から、データベース エンジン チューニング アドバイザーは、リモート サーバー上にあるトレース テーブル内のワークロードをチューニングできません。 この制限を回避するには、トレース テーブルではなくトレース ファイルを使用するか、トレース テーブルをリモート サーバーにコピーします。

  • ( -B オプションまたは [高度なチューニング オプション ] ダイアログ ボックスを使用して) チューニングの推奨事項の最大ディスク領域を指定する場合など、制約を適用すると、データベース エンジン チューニング アドバイザーが特定の既存のインデックスを強制的に削除する可能性があります。 この場合、結果として得られるデータベース エンジン チューニング アドバイザーの推奨事項によって、予想される改善が否定的になる可能性があります。

  • チューニング時間を制限する制約を指定する場合 (dta ユーティリティで -A オプションを使用するか、[チューニング オプション] タブの [チューニング時間の制限] チェック ボックスをオンにした場合)、データベース エンジン チューニング アドバイザーがその制限時間を超えて、予想される正確な改善が生成され、ワークロードの任意の部分が消費された場合の分析レポートが生成される可能性があります。

  • データベース エンジン チューニング アドバイザーでは、次の状況では推奨事項が作成されない場合があります。

    1. チューニング対象のテーブルに含まれるデータ ページ数が 10 未満です。

    2. 推奨されるインデックスでは、現在の物理データベース設計よりもクエリ パフォーマンスが十分に向上しません。

    3. データベース エンジン チューニング アドバイザーを実行するユーザーは、 db_owner データベース ロールまたは固定サーバー ロール sysadmin メンバーではありません。 ワークロード内のクエリは、データベース エンジン チューニング アドバイザーを実行するユーザーのセキュリティ コンテキストで分析されます。 ユーザーは、 db_owner データベース ロールのメンバーである必要があります。

  • データベース エンジン チューニング アドバイザーは、チューニング セッション データとその他の情報を msdb データベースに格納します。 msdb データベースに変更が加えられた場合、チューニング セッション データが失われる可能性があります。 このリスクを排除するには、 msdb データベースに適切なバックアップ戦略を実装します。

パフォーマンスに関する考慮事項

データベース エンジン チューニング アドバイザーでは、分析中にプロセッサとメモリのリソースが大量に消費される可能性があります。 運用サーバーの速度低下を回避するには、次のいずれかの方法に従います。

  • サーバーが空き時間にデータベースを調整します。 データベース エンジン チューニング アドバイザーは、メンテナンス タスクのパフォーマンスに影響を与える可能性があります。

  • テスト サーバー/運用サーバー機能を使用します。 詳細については、「 実稼働サーバーのチューニング負荷を軽減する」を参照してください。

  • データベース エンジン チューニング アドバイザーで分析する物理データベース設計構造のみを指定します。 データベース エンジン チューニング アドバイザーには多くのオプションが用意されていますが、必要なオプションのみを指定します。

拡張ストアド プロシージャxp_msverへの依存関係

データベース エンジン チューニング アドバイザーは、 xp_msver 拡張ストアド プロシージャに依存して、完全な機能を提供します。 この拡張ストアド プロシージャは、既定で有効になっています。 データベース エンジン チューニング アドバイザーでは、この拡張ストアド プロシージャを使用して、チューニングするデータベースが存在するコンピューター上のプロセッサの数と使用可能なメモリをフェッチします。 xp_msver使用できない場合、データベース エンジン チューニング アドバイザーは、データベース エンジン チューニング アドバイザーが実行されているコンピューターのハードウェア特性を前提としています。 データベース エンジン チューニング アドバイザーが実行されているコンピューターのハードウェア特性を使用できない場合は、1 つのプロセッサと 1024 MB (MB) のメモリが想定されます。

推奨されるパーティションの数はこれら 2 つの値 (プロセッサの数と使用可能なメモリ) に依存するため、この依存関係はパーティション分割の推奨事項に影響します。 この依存関係は、テスト サーバーを使用して運用サーバーをチューニングする場合のチューニング結果にも影響します。 このシナリオでは、データベース エンジン チューニング アドバイザーは 、xp_msver を使用して実稼働サーバーからハードウェア プロパティをフェッチします。 テスト サーバーでワークロードをチューニングした後、データベース エンジン チューニング アドバイザーはこれらのハードウェア プロパティを使用して推奨事項を生成します。 詳細については、「xp_msver (Transact-SQL)」を参照してください。

データベース エンジン チューニング アドバイザーのタスク

次の表に、データベース エンジン チューニング アドバイザーの一般的なタスクとその実行方法を説明するトピックを示します。

データベース エンジン チューニング アドバイザー タスク トピック
データベース エンジン チューニング アドバイザーを初期化して起動します。

プラン キャッシュを指定するか、スクリプトを作成するか、トレース ファイルまたはトレース テーブルを生成して、ワークロードを作成します。

データベース エンジン チューニング アドバイザーのグラフィカル ユーザー インターフェイス ツールを使用してデータベースをチューニングします。

XML 入力ファイルを作成してワークロードを調整します。

データベース エンジン チューニング アドバイザーのユーザー インターフェイス オプションの説明を表示します。
データベース エンジン チューニング アドバイザーの起動および使用
データベースチューニング操作の結果を表示します。

チューニングの推奨事項を選択して実装します。

ワークロードに対して仮説検証のための探索的分析を行います。

既存のチューニング セッションを確認し、既存のセッションに基づいてセッションを複製する
さらに評価または実装するために、既存のチューニングに関する推奨事項を編集します。

データベース エンジン チューニング アドバイザーのユーザー インターフェイス オプションの説明を表示します。
データベース エンジン チューニング アドバイザーからの出力の表示および操作