ワークロードを作成する方法

ワークロードとは、チューニングする 1 つ以上のデータベースに対して実行する一連の Transact-SQL ステートメントです。データベース エンジン チューニング アドバイザのグラフィカル ユーザー インターフェイス (GUI) と dta コマンド ライン ユーティリティでは、データベースのチューニング時に、トレース ファイル、トレース テーブル、または Transact-SQL スクリプトがワークロード入力として使用されます。ワークロードは XML 入力ファイルにも埋め込むことができます。XML 入力ファイルでは、各イベントの重みも指定できます。インライン ワークロードの指定の詳細については、「XML 入力ファイルを使用したチューニング」を参照してください。

Microsoft SQL Server Management Studio のクエリ エディタ、または使い慣れたテキスト エディタを使用して、Transact-SQL スクリプト ワークロードを作成できます。トレース ファイルまたはトレース テーブル ワークロードを作成するには、SQL Server Profiler を使用します。データベース エンジン チューニング アドバイザでは、サーバーのクエリ パフォーマンスを向上させるインデックスやパーティション分割ストラテジを推奨するために、これらのワークロードが分析されます。

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

SQL Server Management Studio のクエリ エディタを使用して、Transact-SQL スクリプト ワークロードを作成するには

  1. SQL Server Management Studio でクエリ エディタを起動します。この手順の実行方法の詳細については、「SQL Server Management Studio でのスクリプトやファイルの編集」を参照してください。

  2. クエリ エディタに Transact-SQL スクリプトを入力します。このスクリプトには、チューニングする 1 つ以上のデータベースに対して実行する一連の Transact-SQL ステートメントが含まれている必要があります。.sql 拡張子を付けて、ファイルを保存します。データベース エンジン チューニング アドバイザ GUI やコマンド ライン ユーティリティでは、この Transact-SQL スクリプトをワークロードとして使用できます。

SQL Server Profiler を使用してトレース ファイル ワークロードやトレース テーブル ワークロードを作成するには

  1. 次の方法のいずれかを使用して、SQL Server Profiler を起動します。

    • [スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server 2005][パフォーマンス ツール] を順にポイントし、[SQL Server Profiler] をクリックします。
    • SQL Server Management Studio で [ツール] メニューをクリックし、次に [SQL Server Profiler] をクリックします。
  2. 次の手順では、SQL Server Profiler の Tuning テンプレートを使用して、トレース ファイルまたはトレース テーブルを作成します。

データベース エンジン チューニング アドバイザ用のワークロードをキャプチャするには、SQL Server Profiler の Tuning テンプレートを使用することをお勧めします。

独自のテンプレートを使用する場合、使用している SQL Server のバージョンで、次のトレース イベントがキャプチャされるようにしてください。

SQL Server 2005:

  • RPC:Completed
  • SQL:BatchCompleted
  • SP:StmtCompleted

SQL Server 2000:

  • RPC:Completed
  • SQL:BatchCompleted

これらのトレース イベントの Starting バージョンを使用することもできます。たとえば、SQL:BatchStarting などです。ただし、これらのトレース イベントの Completed バージョンには、Duration 列が含まれているので、データベース エンジン チューニング アドバイザは、より効率的にワークロードのチューニングを行うことができます。データベース エンジン チューニング アドバイザは、他の種類のトレース イベントのチューニングは行いません。これらのトレース イベントの詳細については、「Stored Procedures イベント カテゴリ」および「TSQL イベント カテゴリ」を参照してください。SQL トレース ストアド プロシージャを使用したトレース ファイル ワークロードの作成の詳細については、「トレースを作成する方法 (Transact-SQL)」を参照してください。

LoginName データ列を含んでいるトレース ファイル ワークロードまたはトレース テーブル ワークロード

データベース エンジン チューニング アドバイザは、チューニング処理の一環としてプラン表示要求を送信します。LoginName データ列が含まれているトレース テーブルまたはトレース ファイルをワークロードとして使用する場合、データベース エンジン チューニング アドバイザは、LoginName に指定されているユーザーの権限を借用します。トレースに含まれているステートメントに対してプラン表示を実行し生成するための SHOWPLAN 権限がそのユーザーに許可されていない場合、そのステートメントのチューニングは行われません。LoginName データ列の詳細については、「データ列を使用したイベントの説明」を参照してください。SHOWPLAN 権限の詳細については、「プラン表示のセキュリティ」を参照してください。

トレースの LoginName 列に指定された各ユーザーに SHOWPLAN 権限を許可しないようにするには

  1. トレース ファイル ワークロードまたはトレース テーブル ワークロードをチューニングします。詳細については、「データベースをチューニングする方法」を参照してください。

  2. 権限が不適切だったためにチューニングされなかったステートメントがないかどうか、チューニング ログを確認します。詳細については、「チューニング ログについて」および「チューニング出力を表示する方法」を参照してください。

  3. チューニングされなかったイベントから LoginName 列を削除することで、新しいワークロードを作成します。チューニングされなかったイベントのみを新しいトレース ファイルまたは新しいトレース テーブルに保存します。トレースからデータ列を削除する方法の詳細については、「トレース ファイルに含めるイベントとデータ列を指定する方法 (SQL Server Profiler)」または「既存のトレースを変更する方法 (Transact-SQL)」を参照してください。

  4. LoginName 列が含まれていない新しいワークロードをデータベース エンジン チューニング アドバイザに再送信します。

トレースでログイン情報が指定されていないので、データベース エンジン チューニング アドバイザはこの新しいワークロードをチューニングします。ステートメントに LoginName が含まれていない場合、データベース エンジン チューニング アドバイザは、チューニング セッションを開始したユーザー (sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのいずれかのメンバ) の権限を借用してステートメントをチューニングします。

参照

概念

データベースのチューニング

その他の技術情報

データベースをチューニングする方法
SQL Server Profiler の概要
SQL トレースの概要

ヘルプおよび情報

SQL Server 2005 の参考資料の入手