データベース エンジン チューニング アドバイザの機能
データベース エンジン チューニング アドバイザの新機能を使用すると、データベース管理者として経験を問わず、クエリのパフォーマンスを向上させるためのデータベース チューニングを行うことができます。データベース エンジン チューニング アドバイザの新機能の一覧と説明を次に示します。
ワークロード解析の機能向上
temp テーブルなどの一時的なテーブルを参照するバッチを処理します。
あるイベントを解析できなかった場合でも、チューニングは終了しません。そのイベントはチューニング ログに記録され、他のイベントのチューニングが続行されます。
ユーザー定義関数を参照するクエリを解析し、チューニングします。
トレース内のすべての USE ステートメントを処理します。これは複数のデータベースをチューニングする場合に不可欠の機能です。
ワークロード内の LoginName 列を使用して (トレース ワークロードで使用できる場合)、実行するユーザーのコンテキストで正確にイベントをチューニングします。
トリガ内のステートメントをチューニングします。
スケーラビリティの強化
ワークロードの圧縮を使用します。これにより、データベース エンジン チューニング アドバイザは、高品質のチューニング推奨結果を生成しつつ、チューニングにかかる時間を削減できます。
冗長な統計の作成を回避するアルゴリズムを使用します。これにより、チューニング時に発生する I/O の数を削減できます。
統合チューニング
データベース エンジン チューニング アドバイザでは、フィルタ選択されたインデックスなど、さまざまな種類の物理設計構造 (インデックス、インデックス付きビュー、パーティション分割) によって生じるパフォーマンスのトレードオフを考慮することができます。構造が異なっても、クエリの実行コストを削減する効果は似通っている場合があります。データベース エンジン チューニング アドバイザでは、複数の設計構造を統合した構成について考察する能力によって、質の高い推奨セットが提供されます。たとえば、ある一連のテーブルについてクラスタ化インデックスのみを考慮し、その後、同じ一連のテーブルについて行方向のパーティション分割を考慮した場合、これら 2 つの物理設計構造がどのように連動するかについては知ることができません。これらがどのように連動するかを調べるには、チューニング ツールで統合チューニングを行う必要があります。
複数のデータベースのチューニング
アプリケーションは、作業を完了するために複数のデータベースにアクセスすることがあります。そのため、ワークロードでは頻繁に複数のデータベースのオブジェクトへの参照が行われます。Microsoft SQL Server 2000 のインデックス チューニング ウィザードとは異なり、データベース エンジン チューニング アドバイザでは、同時に複数のデータベースをチューニングすることができます。チューニングするデータベースのセットを指定すれば、データベース エンジン チューニング アドバイザは選択されたすべてのデータベースについて推奨セットを生成します。この機能の詳細については、「複数のデータベースのチューニング」を参照してください。
テスト サーバーによるチューニング オーバーヘッドの軽減
大量のワークロードをチューニングすると、チューニング対象のサーバーに大きなオーバーヘッドが発生する可能性があります。これは、データベース エンジン チューニング アドバイザがチューニング プロセス中に、クエリ オプティマイザを何度も呼び出す必要が生じることがあるためです。実稼働サーバーに加えてテスト サーバーを使用すると、この問題は生じません。
このシナリオでは、実稼働サーバーの環境を複製したテスト サーバーをチューニングします。テスト サーバーをチューニングした結果としてデータベース設計構成の推奨が作成されたら、メンテナンス ウィンドウを使用して実稼働サーバーにその推奨セットを実装できます。
テスト サーバーを使用する従来の方法は、実稼働サーバーのデータをすべてテスト サーバーにコピーして、テスト サーバーをチューニングし、その結果作成された推奨セットを 2 台のコンピュータのハードウェアの違いに合わせて調整するというものです。データベース エンジン チューニング アドバイザでは、テスト コンピュータにデータをコピーしなくても、あるいは 2 台のコンピュータのハードウェアが同じでなくても、テスト サーバーを使用したチューニングを行うことができます。これは時間とリソースの節約になります。データベース エンジン チューニング アドバイザでは、メタデータ、統計、およびハードウェアのパラメータを実稼働サーバーからテスト サーバーへインポートします。データベース エンジン チューニング アドバイザはその後、テスト サーバーで一連のチューニング操作を実行します。結果は、通常のメンテナンス時に実稼働サーバーに実装できます。この機能の詳細については、「実稼動サーバーのチューニング負荷の軽減」を参照してください。
コマンド プロンプト ユーティリティおよびグラフィカル ユーザー インターフェイス ツール
データベース エンジン チューニング アドバイザには、次の 2 つのユーザー インターフェイスがあります。
dta コマンド プロンプト ユーティリティ。データベース エンジン チューニング アドバイザの機能をスクリプトに簡単に組み込んで使用することができます。
データベース エンジン チューニング アドバイザのグラフィカル ユーザー インターフェイス (GUI) ツール。チューニング セッションや結果を簡単に目で見て確認することができます。
削除のみのチューニング
物理設計構造はデータベース内に蓄積されていきますが、データベース管理者はもはや使用しなくなった構造を削除する必要があります。削除のみのチューニング オプションは、まったく使われていないか、特定のワークロードに関して使用する意味がほとんどない既存の物理設計構造を識別するのに役立ちます。このチューニング オプションは、dta コマンド プロンプト ユーティリティの使用時に -fx 引数を使用して指定することができます。GUI を使用する場合は、[チューニング オプション] タブの [既存の PDS のみ使用を評価する] をオンにしてこのオプションを指定できます。
このオプションを指定した場合、データベース エンジン チューニング アドバイザでは新規構造の推奨が行われません。そのため、インデックス、インデックス付きビュー、またはパーティションを追加する他のオプションと同時にこのオプションを使用することはできません。削除のみのチューニング オプションは、既存の構造をすべて保持するオプションと同時に使用することもできません。データベース エンジン チューニング アドバイザで使用できるチューニング オプションの詳細については、「使用可能なチューニング オプション」を参照してください。
XML のサポート
データベース エンジン チューニング アドバイザの GUI および dta コマンド プロンプト ユーティリティを使用して実行できるチューニング操作は、すべてデータベース エンジン チューニング アドバイザの XML 入力ファイルに定義できます。XML 入力ファイルは、パブリッシュされたデータベース エンジン チューニング アドバイザ XML スキーマを使用します。このスキーマは、Microsoft SQL Server のインストール ディレクトリの次の場所にあります。
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd
このスキーマは、Microsoft Web サイトの「Database Engine Tuning Advisor Schema (データベース エンジン チューニング アドバイザ スキーマ)」からダウンロードすることもできます。
XML 入力ファイルを使用すると、データベースのチューニング時にお好みの XML ツールを使用できるので、経験のあるデータベース管理者はより柔軟な操作を行えます。たとえば、XML 入力ファイルを使用して、既存および仮想の物理設計構造 (インデックス、インデックス付きビュー、パーティション分割) の構成を指定します。それから dta コマンド プロンプト ユーティリティを使用して、この構成が実装されているものと仮定してデータベースのチューニングを行えます。これにより、チューニングのために新しい構成を実装するオーバーヘッドを生じさせることなく、"what-if" 分析を行うことが可能になります。データベース エンジン チューニング アドバイザの XML サポートの詳細については、「XML 入力ファイル リファレンス (データベース エンジン チューニング アドバイザ)」、「XML 入力ファイルを使用したチューニング」、および「データベース エンジン チューニング アドバイザを使用した調査分析」を参照してください。
ユーザー指定の構成および "what-if" 分析のサポート
データベース エンジン チューニング アドバイザでは、物理設計構造 (インデックス、インデックス付きビュー、およびパーティション分割の方法) の仮想的な構成を、チューニングのための入力として指定できます。その場合、その構成が既に実装されているかのように、1 つまたは複数のデータベースをチューニングできます。これにより、実装のオーバーヘッドが生じる前に、物理設計構造の特定のセットについて "what-if" 分析を行えます。この機能は、データベース エンジン チューニング アドバイザ XML スキーマによって完全にサポートされます。評価したい構成を XML 入力ファイル内で指定し、dta コマンド プロンプト ユーティリティを使用してチューニング セッションを開始できます。この機能の詳細については、「データベース エンジン チューニング アドバイザを使用した調査分析」を参照してください。
分析レポート
チューニング セッションが完了すると、データベース エンジン チューニング アドバイザによって、いくつかの分析レポートがテキストまたは XML 形式で生成されます。これらのレポートには、ワークロード内で発生しているクエリのコスト、ワークロード内で発生するイベントの頻度、クエリとクエリが参照するインデックスとの関係などの情報が含まれています。レポートは、データベース エンジン チューニング アドバイザの GUI を使用して表示できます。または、XML 形式で生成されたレポートを好みの XML エディタを使用して開くこともできます。データベース エンジン チューニング アドバイザによって生成される分析レポートの詳細については、「データベース エンジン チューニング アドバイザのレポートの選択」を参照してください。
チューニング セッション
分析を開始する前に、データベース エンジン チューニング アドバイザによって、チューニング セッションを識別する固有の名前または番号を作成するように求められます。ワークロードの分析後、または分析の停止時には、データベース エンジン チューニング アドバイザによってチューニング セッション情報が保存され、その情報はチューニングを開始する前に指定した ID と関連付けられます。セッション ID を使用して、既存のセッションをデータベース エンジン チューニング アドバイザの GUI に再度読み込み、チューニング結果とレポートを再表示できます。チューニング セッションを使用すれば、時間の経過に伴うチューニング結果の比較が容易になります。チューニング セッションの使用の詳細については、「セッション モニタを使用したチューニング推奨設定の評価」を参照してください。
dta ユーティリティのみで使用できる機能
現行では、データベース エンジン チューニング アドバイザ GUI では次に示すチューニング オプションを使用できません。
コマンド プロンプトからの入力、または XML 入力ファイルを使用する場合
コマンド プロンプトから dta ユーティリティを実行する場合、または -ix コマンド プロンプト引数を使用することによってこのユーティリティで XML 入力ファイルを使用する場合、次の指定を行えます。
名前別のチューニング ログ (-e コマンド プロンプト引数または TableName 要素)。
チューニングを行うイベントの数 (-n コマンド プロンプト引数または NumberOfEvents 要素)。
データベース エンジン チューニング アドバイザによって提示されるインデックスのキー列の最大数 (-c コマンド プロンプト引数または MaxKeyColumnsInIndex 要素)。
推奨構成に提示されるデータベース エンジン チューニング アドバイザの最小向上率 (-m コマンド プロンプト引数または MinPercentageImprovement 要素)。
XML 入力ファイルを使用する場合
上記の機能に加えて、dta ユーティリティで XML 入力ファイルを使用する場合、次の操作も行えます。
テスト サーバーでのシェル データベースの作成を含む、テスト サーバーと実稼働サーバーのシナリオの使用 (TestServer 要素)。
XML 入力ファイルでのインラインのワークロードの指定 (EventString 要素)。
ワークロードでの定数の無視 (IgnoreConstantsInWorkload 要素)。
コマンド プロンプトからの入力
上記の機能に加えて、コマンド プロンプトから dta ユーティリティを実行する場合、次の操作も行えます。
フィードバック メッセージを表示せずにユーティリティが実行される、非表示モードの指定 (-q コマンド プロンプト引数)。
チューニングおよびチューニング推奨設定の自動適用 (-a コマンド プロンプト引数)。