ワークロードについて

データベース エンジン チューニング アドバイザで、使用しているデータベースのインデックス、インデックス付きビュー、またはパーティションの最適な推奨セットを構築するにはワークロードが必要です。ワークロードは、ファイルやテーブルに保存された、Transact-SQL スクリプトまたは SQL Server Profiler トレースで構成されます。SQL Server Profiler のトレース ファイルやテーブルを使用している場合、そのファイルやテーブルに Transact-SQL バッチまたはリモート プロシージャ コール (RPC) イベント クラスが含まれていて、そのイベント クラスのデータ列に、Event Class データ列と Text データ列が含まれている必要があります。詳細については、「TSQL イベント カテゴリ」を参照してください。

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

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

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

  • OLTP と OLAP の混在クエリ

  • クエリが集中的に行われるワークロード (更新数よりもクエリ数が多い)

  • 更新が集中的に行われるワークロード (クエリ数よりも更新数が多い)

ワークロードには、データベースに対して実行される一般的なワークロードを表す、チューニング可能なイベントが多く含まれている必要があります。

データベース エンジン チューニング アドバイザで分析する既存のワークロードがない場合、SQL Server Profiler のチューニング テンプレートを使用してワークロードを作成できます。チューニング テンプレートは、データベース エンジン チューニング アドバイザでチューニングするために必要なイベントや列をキャプチャするように構成されています。詳細については、「SQL Server Profiler のテンプレート」を参照してください。

トレースによって通常のデータベース利用状況の代表的なサンプルがキャプチャされてから、データベース エンジン チューニング アドバイザによってワークロードが分析されます。その後、データベース パフォーマンスを向上させる、インデックス、インデックス付きビュー、またはパーティションの最適な推奨構成が表示されます。

次の項目をワークロードとして使用することもできます。

  • 組織や業界固有のベンチマーク。

  • 実行に時間がかかる問題のあるクエリ。

ワークロードの使用

データベース エンジン チューニング アドバイザでワークロードを使用するときは、次の点を考慮します。

  • ワークロードとしてトレース テーブルを使用する場合、そのテーブルは、データベース エンジン チューニング アドバイザがチューニングを実行するサーバーと同じサーバー上に存在する必要があります。別のサーバーにトレース テーブルを作成した場合は、データベース エンジン チューニング アドバイザでチューニングされているサーバーに移動します。

  • データベース エンジン チューニング アドバイザのワークロードとしてトレース テーブルを使用する前に、トレースが停止していることを確認してください。データベース エンジン チューニング アドバイザでは、トレース イベントをワークロードとして書き込み中のトレース テーブルには使用できません。

  • データベース エンジン チューニング アドバイザでは、ワークロードとしてトレース ファイルを使用するとき、それがロールオーバー ファイルであると想定されます。ロールオーバー ファイルの詳細については、「トレース ファイルとテーブル サイズの制限」を参照してください。

  • 特定のクエリ プランを SQL Server に適用する USE PLAN クエリ ヒントがワークロード内のクエリで使用されている場合、データベース エンジン チューニング アドバイザは、適用されたプラン内のインデックスをすべて保持し、チューニング推奨設定の一部としてインデックスを削除することはありません。

  • データベース エンジン チューニング アドバイザは、チューニング処理の一環としてプラン表示要求を送信します。LoginName データ列が含まれているトレース テーブルまたはトレース ファイルをワークロードとして使用する場合、データベース エンジン チューニング アドバイザは、LoginName に指定されているユーザーの権限を借用します。トレースに含まれているステートメントの表示プランを実行および生成するために必要な権限がこのユーザーにない場合、そのステートメントのチューニングは行われません。これを解決するには、チューニングできなかったイベントから LoginName 列を削除します。詳細については、「ワークロードを作成する方法」の「LoginName データ列を含んでいるトレース ファイル ワークロードまたはトレース テーブル ワークロード」を参照してください。