データベース エンジン チューニング アドバイザの使用に関する注意点
データベース エンジン チューニング アドバイザを使用する前に、その機能とパフォーマンスへの影響について理解する必要があります。ここでは、これらの考慮事項について説明します。ただし、問題のすべてを網羅しているわけではありません。データベース エンジン チューニング アドバイザを使用するにあたっての考慮事項は、それぞれの環境および SQL Server の実装状況によって異なります。
データベース エンジン チューニング アドバイザの機能
データベース エンジン チューニング アドバイザでは、次の操作は実行されません。
システム テーブルのインデックスの推奨。
一意インデックスか、あるいは PRIMARY KEY 制約または UNIQUE 制約を適用するインデックスの追加または削除。
シングル ユーザー データベースのチューニング。
注意 |
---|
データベース エンジン チューニング アドバイザでは、インデックス付きビューが推奨設定の一部である場合、ビューに一意のクラスタ化インデックスを作成することが推奨されます。 |
また、データベース エンジン チューニング アドバイザには、次のような制限があります。
データベース エンジン チューニング アドバイザでは、データをサンプリングすることによって統計が収集されます。したがって、同じワークロードでツールを繰り返し実行すると、異なる結果が生成される場合があります。
データベース エンジン チューニング アドバイザは、MicrosoftSQL Server 7.0 以前のデータベースのインデックスをチューニングするために使用することはできません。
使用可能なディスク領域を超える推奨設定をチューニングするために最大ディスク領域を指定した場合、データベース エンジン チューニング アドバイザでは、指定したその値が使用されます。ただし、推奨設定を実装するためのスクリプトを実行したときに、最初にディスク領域が追加されないと、そのスクリプトは失敗する可能性があります。最大ディスク領域は、dta ユーティリティの -B オプションを使用するか、または [チューニング オプションの詳細設定] ダイアログ ボックスで値を入力することによって指定できます。
セキュリティ上の理由により、データベース エンジン チューニング アドバイザでは、リモート サーバーにあるトレース テーブルのワークロードをチューニングできません。この制限に対処するには、次のいずれかの操作を選択します。
トレース テーブルではなくトレース ファイルを使用します。
トレース テーブルをリモート サーバーにコピーします。
推奨設定をチューニングするための最大ディスク領域を (-B オプションまたは [チューニング オプションの詳細設定] ダイアログ ボックスを使用して) 指定したとき課されるような制約を適用すると、データベース エンジン チューニング アドバイザによって、強制的に特定の既存のインデックスが削除されることがあります。この場合、結果のデータベース エンジン チューニング アドバイザの推奨設定では、予測向上率が負になっている可能性があります。
チューニング時間を制限する制約を (dta ユーティリティで -A オプションを使用するか、または [チューニング オプション] タブの [チューニング時間を制限する] チェック ボックスをオンにして) 指定した場合、データベース エンジン チューニング アドバイザでは、正確な予測向上率と、これまでに使用されたさまざまなワークロードに関する分析レポートを生成するために、その制限時間を超えて処理が行われる可能性があります。
次の状況では、データベース エンジン チューニング アドバイザによって、推奨設定が生成されないことがあります。
チューニングされているテーブルに含まれているデータ ページが 10 ページ未満である場合。
推奨されたインデックスを使用しても、現在の物理データベースのデザインではクエリのパフォーマンスが十分に向上しない場合。
データベース エンジン チューニング アドバイザを実行するユーザーが、db_owner データベース ロールまたは sysadmin 固定サーバー ロールのメンバではない場合。ワークロード内のクエリは、データベース エンジン チューニング アドバイザを実行したユーザーのセキュリティ コンテキストで分析されます。ユーザーは、db_owner データベース ロールのメンバである必要があります。
次の状況では、データベース エンジン チューニング アドバイザによって、パーティション分割の推奨設定が生成されないことがあります。
- xp_msver 拡張ストアド プロシージャが有効になっていない場合。この拡張ストアド プロシージャは、チューニングされているデータベースが存在するサーバーのプロセッサ数と使用可能なメモリの量をフェッチするために使用されます。SQL Server をインストールした場合、この拡張ストアド プロシージャは既定で有効になっています。詳細については、「セキュリティ構成について」および「xp_msver (Transact-SQL)」を参照してください。
注意 |
---|
データベース エンジン チューニング アドバイザでテスト サーバーがチューニングされている場合、チューニング中にデータベース エンジン チューニング アドバイザが実稼動サーバーから情報をフェッチできるように xp_msver ストアド プロシージャを有効にする必要があります。詳細については、「テスト サーバーの使用に関する注意点」を参照してください。 |
パフォーマンスに関する注意点
データベース エンジン チューニング アドバイザでは、分析中に大量のプロセッサ リソースとメモリ リソースが使用される可能性があります。実稼動サーバーの処理速度の低下を回避するには、次のいずれかの操作を実行します。
サーバーが使用されていないときにデータベースをチューニングします。データベース エンジン チューニング アドバイザは、メンテナンス タスクのパフォーマンスに影響を与える可能性があります。
テスト サーバーと実稼動サーバーの機能のいずれかまたは両方を使用します。詳細については、「実稼動サーバーのチューニング負荷の軽減」を参照してください。
データベース エンジン チューニング アドバイザで分析するデータベースの物理デザイン構造のみを指定します。データベース エンジン チューニング アドバイザには多くのオプションが用意されていますが、必要なオプションのみを指定するようにしてください。
データベース エンジン チューニング アドバイザにおける msdb データベースへのセッション情報の格納
データベース エンジン チューニング アドバイザでは、チューニング セッションのデータや他の情報を msdb データベースに格納します。msdb データベースが変更されると、チューニング セッションのデータが失われることがあります。このような危険を回避するには、適切なバックアップ ストラテジを msdb データベースに実装します。