データベース エンジン チューニング アドバイザーの起動および使用
適用対象: SQL Server
この記事では、SQL Server でデータベース エンジン チューニング アドバイザーを起動して使用する方法について説明します。 データベースをチューニングした後で結果を表示および操作する方法については、「 データベース エンジン チューニング アドバイザーからの出力の表示および操作」を参照してください。
Note
データベース エンジン チューニング アドバイザーは、Azure SQL データベース または Azure SQL Managed Instance ではサポートされていません。 代わりに、「Azure SQL Database と Azure SQL Managed Instance での監視とパフォーマンス チューニング」で推奨されている戦略を検討してください。 Azure SQL データベース については、「Azure SQL Database のデータベース アドバイザーのパフォーマンスに関する推奨事項」も参照してください。
データベース エンジン チューニング アドバイザーを初期化する
初回起動時に、 sysadmin 固定サーバー ロールのメンバーであるユーザーがデータベース エンジン チューニング アドバイザーを初期化する必要があります。 これは、チューニング操作をサポートするには、いくつかのシステム テーブルを msdb
データベースに作成する必要があるためです。 また、初期化によって、 db_owner 固定データベース ロールのメンバーであるユーザーも自分の所有するデータベースにあるテーブルのワークロードをチューニングできます。
システム管理者権限を持つユーザーは、次の操作のいずれかを実行する必要があります。
データベース エンジン チューニング アドバイザーのグラフィカル ユーザー インターフェイスを使用して、SQL Server のインスタンスに接続します。 詳細については、この記事で後述する「データベース エンジン チューニング アドバイザーを起動する」を参照してください。
dta ユーティリティを使用して最初のワークロードをチューニングします。 詳細については、この記事で後述する「dta ユーティリティを使用する」を参照してください。
データベース エンジン チューニング アドバイザーを起動する
データベース エンジン チューニング アドバイザーのグラフィカル インターフェイス (GUI) は、さまざまなシナリオでのデータベース チューニングに対応するために、いくつかの異なる方法で起動することができます。 データベース エンジン チューニング アドバイザーを起動する方法としては、 データベース エンジン チューニング アドバイザー の [スタート] メニューからの操作、 [ツール] メニューからの操作、SQL Server Management Studio のクエリ エディターからの操作、SQL Server Management Studio の [ツール] メニューからの操作があります。 データベース エンジン チューニング アドバイザーを初めて起動すると、 [サーバーへの接続] ダイアログ ボックスが表示されます。このダイアログ ボックスで接続先の SQL Server インスタンス インスタンスを指定できます。
警告
SQL Server アドバイザー をシングル ユーザー モードで実行している場合は、データベース エンジン チューニング アドバイザーを起動しないでください。 サーバーをシングル ユーザー モードで実行しているときにデータベース エンジン チューニング アドバイザーを起動しようとしても、エラーが返されて、データベース エンジン チューニング アドバイザーは起動しません。 シングル ユーザー モードの詳細については、「 シングル ユーザー モードでの SQL Server の起動」を参照してください。
Windows の [スタート] メニューからデータベース エンジン チューニング アドバイザーを起動するには
- [スタート] メニューで、[すべてのプログラム]、[Microsoft SQL Server]、[パフォーマンス ツール] の順にポイントし、[データベース エンジン チューニング アドバイザー] を選択します。
SQL Server Management Studio からデータベース エンジン チューニング アドバイザーを起動するには
- SQL Server Management Studio (SSMS) で [ツール] メニューの [データベース エンジン チューニング アドバイザー] を選択します。
SQL Server Management Studio のクエリ エディターからデータベース エンジン チューニング アドバイザーを起動するには
SQL Server Management Studio に Transact-SQL スクリプトを開きます。 詳細については、「クエリおよびテキスト エディター (SQL Server Management Studio)」を参照してください。
Transact-SQL スクリプト内のクエリを選択するか、スクリプト全体を選択します。選択範囲を右クリックし、 [データベース エンジン チューニング アドバイザーでのクエリの分析]をクリックします。 データベース エンジン チューニング アドバイザー GUI が表示され、そのスクリプトが XML ファイル ワークロードとしてインポートされます。 セッション名とチューニング オプションを指定して、選択した Transact-SQL クエリを自分のワークロードとしてチューニングできます。
SQL Server Profiler からデータベース エンジン チューニング アドバイザーを起動するには
- SQL Server Profiler の [ツール] メニューで、[データベース エンジン チューニング アドバイザー] を選択します。
ワークロードを作成する
ワークロードとは、チューニングするデータベースに対して実行する Transact-SQL ステートメントのセットです。 データベース エンジン チューニング アドバイザーでは、サーバーのクエリ パフォーマンスを向上させるインデックスやパーティション分割ストラテジを推奨するために、これらのワークロードが分析されます。
ワークロードを作成するには、次のいずれかの方法を使用します。
クエリ ストアをワークロードとして指定する。 このようにすることでワークロードを手動で作成する手間が省けます。 詳しくは、「Tuning Database Using Workload From Query Store」(クエリ ストアのワークロードを使用してデータベースをチューニングする) をご覧ください。
適用対象: SQL Server 2016 (13.x) 以降。 プラン キャッシュをワークロードとして指定する。 このようにすることでワークロードを手動で作成する手間が省けます。 詳細については、この記事で後述する「データベースをチューニングする」を参照してください。
SQL Server Management Studio のクエリ エディター、または使い慣れたテキスト エディターを使用して、 Transact-SQL スクリプト ワークロードを手動で作成できます。
トレース ファイルまたはトレース テーブル ワークロードを作成するには、SQL Server Profiler を使用します
Note
ワークロードとしてトレース テーブルを使用する場合、そのテーブルは、データベース エンジン チューニング アドバイザーがチューニングを実行するサーバーと同じサーバー上に存在する必要があります。 別のサーバーにトレース テーブルを作成した場合は、データベース エンジン チューニング アドバイザーでチューニングされているサーバーに移動します。
ワークロードは XML 入力ファイルにも埋め込むことができます。XML 入力ファイルでは、各イベントの重みも指定できます。 埋め込まれたワークロードを指定する方法については、この記事で後述する「XML 入力ファイルを作成する」を参照してください。
Transact-SQL スクリプトのワークロードを作成するには
SQL Server Management Studio のクエリ エディター を起動。 詳細については、「クエリおよびテキスト エディター (SQL Server Management Studio)」を参照してください。
クエリ エディターに Transact-SQL スクリプトを入力します。 このスクリプトには、チューニングするデータベースに対して実行する一連の Transact-SQL ステートメントが含まれている必要があります。
.sql 拡張子を付けて、ファイルを保存します。 データベース エンジン チューニング アドバイザーの GUI および dta コマンド ライン ユーティリティで、この Transact-SQL スクリプトをワークロードとして使用できます。
トレース ファイル ワークロードおよびトレース テーブル ワークロードを作成するには
次の方法のいずれかを使用して、SQL Server Profiler を起動します。
[スタート] メニューで、[すべてのプログラム]、[Microsoft SQL Server]、[パフォーマンス ツール] の順にポイントして、[SQL Server Profiler] を選択します。
SQL Server Management Studio の [ツール] メニューで、[SQL Server Profiler] をクリックします。
次の手順では、SQL Server Profiler Tuning テンプレートを使用して、トレース ファイルまたはトレース テーブルを作成します。
トレース結果のファイルへの保存 (SQL Server Profiler)
データベース エンジン チューニング アドバイザーでは、ワークロード トレース ファイルはロールオーバー ファイルと見なされます。 ロールオーバー ファイルの詳細については、「 Limit Trace File and Table Sizes」を参照してください。
トレース結果のテーブルへの保存 (SQL Server Profiler)
トレース テーブルをワークロードとして使用する前に、トレースが停止していることを確認します。
データベース エンジン チューニング アドバイザー用のワークロードをキャプチャするには、SQL Server Profiler の Tuning テンプレートを使用することをお勧めします。
独自のテンプレートを使用する場合、次のトレース イベントがキャプチャされるようにしてください。
RPC:Completed
SQL:BatchCompleted
SP:StmtCompleted
これらのトレース イベントの Starting バージョンを使用することもできます。 たとえば、 SQL:BatchStartingなどです。 ただし、これらのトレース イベントの Completed バージョンには、 Duration 列が含まれているので、データベース エンジン チューニング アドバイザーは、より効率的にワークロードのチューニングを行うことができます。 データベース エンジン チューニング アドバイザーは、他の種類のトレース イベントのチューニングは行いません。 これらのトレース イベントの詳細については、「 Stored Procedures Event Category 」および「 TSQL Event Category」を参照してください。 SQL トレース ストアド プロシージャを使用したトレース ファイル ワークロードの作成の詳細については、「トレースの作成 (Transact-SQL)」を参照してください。
loginname データ列を含んでいるトレース ファイル ワークロードまたはトレース テーブル ワークロード
データベース エンジン チューニング アドバイザーは、チューニング処理の一環としてプラン表示要求を送信します。 LoginName データ列が含まれているトレース テーブルまたはトレース ファイルをワークロードとして使用する場合、データベース エンジン チューニング アドバイザーは、 LoginNameに指定されているユーザーの権限を借用します。 トレースに含まれているステートメントに対してプラン表示を実行し生成するための SHOWPLAN 権限がそのユーザーに許可されていない場合、そのステートメントのチューニングは行われません。
トレースの LoginName 列に指定された各ユーザーに SHOWPLAN 権限を許可しないようにするには
トレース ファイル ワークロードまたはトレース テーブル ワークロードをチューニングします。 詳細については、この記事で後述する「データベースをチューニングする」を参照してください。
権限が不適切だったためにチューニングされなかったステートメントがないかどうか、チューニング ログを確認します。 詳細については、「 データベース エンジン チューニング アドバイザーからの出力の表示および操作」を参照してください。
チューニングされなかったイベントから LoginName 列を削除することで、新しいワークロードを作成します。チューニングされなかったイベントのみを新しいトレース ファイルまたは新しいトレース テーブルに保存します。 トレースからデータ列を削除する方法の詳細については、「トレース ファイルに含めるイベントとデータ列の指定 (SQL Server Profiler)」または「既存のトレースの変更 (Transact-SQL)」を参照してください。
LoginName 列が含まれていない新しいワークロードをデータベース エンジン チューニング アドバイザーに再送信します。
トレースでログイン情報が指定されていないので、データベース エンジン チューニング アドバイザーはこの新しいワークロードをチューニングします。 ステートメントに LoginName が含まれていない場合、データベース エンジン チューニング アドバイザーは、チューニング セッションを開始したユーザー ( sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのいずれかのメンバー) の権限を借用してステートメントをチューニングします。
データベースをチューニングする
データベースをチューニングするには、データベース エンジン チューニング アドバイザーの GUI または dta ユーティリティを使用できます。
Note
データベース エンジン チューニング アドバイザーのワークロードとしてトレース テーブルを使用する前に、トレースが停止していることを確認してください。 データベース エンジン チューニング アドバイザーでは、トレース イベントをワークロードとして書き込み中のトレース テーブルには使用できません。
データベース エンジン チューニング アドバイザーのグラフィカル ユーザー インターフェイスを使用する
データベース エンジン チューニング アドバイザーの GUI で、プラン キャッシュ、ワークロード ファイル、またはワークロード テーブルを使用してデータベースをチューニングできます。 データベース エンジン チューニング アドバイザーの GUI を使用して、現在のチューニング セッションの結果および以前のチューニング セッションの結果を簡単に表示できます。 ユーザー インターフェイス オプションの詳細については、この記事で後述する「ユーザー インターフェイスの説明」を参照してください。 データベースのチューニング後の出力を操作する方法については、「 データベース エンジン チューニング アドバイザーからの出力の表示および操作」を参照してください。
クエリ ストアを使用してデータベースをチューニングするには
詳しくは、「Tuning Database Using Workload from Query Store」(クエリ ストアのワークロードを使用してデータベースをチューニングする) をご覧ください。
プラン キャッシュを使用してデータベースをチューニングするには
データベース エンジン チューニング アドバイザーを起動し、SQL Server のインスタンスにログインします。 詳細については、この記事で前述した「データベース エンジン チューニング アドバイザーを起動する」を参照してください。
[全般] タブで [セッション名] ボックスに名前を入力して、新しいチューニング セッションを作成します。 セッションのチューニングを始める前に、 [全般] タブのフィールドを設定する必要があります。 [チューニング オプション] タブの設定は、チューニング セッションを開始する前に変更する必要はありません。
ワークロード オプションとして [プラン キャッシュ] を選択します。 データベース エンジン チューニング アドバイザーによって、分析に使用される上位 1,000 件のイベントがプラン キャッシュから選択されます。
チューニングする必要のあるデータベースを選択し、必要に応じて、 [選択したテーブル]から、各データベースのテーブル (複数可) を選択します。 すべてのデータベースのキャッシュ エントリを含めるには、[チューニング オプション] の [詳細設定オプション] を選択し、[すべてのデータベースのプラン キャッシュ イベントを含める] をオンにします。
チューニング ログを保存するには、 [チューニング ログを保存する] をオンにします。 チューニング ログのコピーを保存しない場合は、このチェック ボックスをオフにします。
セッションを開いて [進行状況] タブを選択すると、分析後にチューニング ログを表示できます。
[チューニング オプション] タブをクリックし、必要なオプションを選択します。
[分析の開始]をクリックします。
チューニング セッションの開始後にセッションを停止する場合、 [アクション] メニューにある次のオプションから 1 つを選択します。
[分析の停止 (推奨設定を使用)] を選択すると、チューニング セッションが停止され、この時点までに実行された分析に基づいて、データベース エンジン チューニング アドバイザーで推奨設定を生成するかどうかを決定するように求めるメッセージが表示されます。
[分析の停止] を選択すると、推奨設定を生成せずにチューニング セッションを停止します。
Note
データベース エンジン チューニング アドバイザーの一時停止はサポートされていません。 [分析の停止] または [分析の停止 (推奨設定を使用)] ツール バー ボタンのいずれかを選択してから [分析の開始] ツール バー ボタンを選択すると、データベース エンジン チューニング アドバイザーによって新しいチューニング セッションが開始されます。
ワークロード ファイルまたはテーブルを入力として使用してデータベースをチューニングするには
解析時に、データベース エンジン チューニング アドバイザーによって追加、削除、または保有を検討するデータベースの機能 (インデックス、インデックス付きビュー、パーティション分割) を決定します。
ワークロードを作成します。 詳細については、この記事で前述した「ワークロードを作成する」を参照してください。
データベース エンジン チューニング アドバイザーを起動し、Microsoft SQL Server のインスタンスにログインします。 詳細については、この記事で前述した「データベース エンジン チューニング アドバイザーを起動する」を参照してください。
[全般] タブで [セッション名] ボックスに名前を入力して、新しいチューニング セッションを作成します。
[ワークロード] で [ファイル] または [テーブル] を選択し、該当するボックスにファイルのパスまたはテーブルの名前を入力します。
テーブルは次の形式で指定します。
database_name.schema_name.table_name
ワークロード ファイルまたはテーブルを検索するには、[参照] を選択します。 データベース エンジン チューニング アドバイザーでは、ワークロード ファイルがロールオーバー ファイルであることが前提となります。 ロールオーバー ファイルの詳細については、「 Limit Trace File and Table Sizes」を参照してください。
ワークロードとしてトレース テーブルを使用する場合、そのテーブルは、データベース エンジン チューニング アドバイザーがチューニングを実行するサーバーと同じサーバー上に存在する必要があります。 異なるサーバー上でトレース テーブルを作成した場合は、そのテーブルをワークロードとして使用する前に、データベース エンジン チューニング アドバイザーがチューニングを実行するサーバーに移す必要があります。
手順 5. で選択したワークロードを実行するデータベースとテーブルを選択します。 テーブルを選択するには、[選択したテーブル] の矢印を選択します。
チューニング ログを保存するには、 [チューニング ログを保存する] をオンにします。 チューニング ログのコピーを保存しない場合は、このチェック ボックスをオフにします。
セッションを開いて [進行状況] タブを選択すると、分析後にチューニング ログを表示できます。
[チューニング オプション] タブをクリックし、必要なオプションを選択します。
ツール バーの [分析の開始] ボタンをクリックします。
チューニング セッションの開始後にセッションを停止する場合、 [アクション] メニューにある次のオプションから 1 つを選択します。
[分析の停止 (推奨設定を使用)] を選択すると、チューニング セッションが停止され、この時点までに実行された分析に基づいて、データベース エンジン チューニング アドバイザーで推奨設定を生成するかどうかを決定するように求めるメッセージが表示されます。
[分析の停止] を選択すると、推奨設定を生成せずにチューニング セッションを停止します。
Note
データベース エンジン チューニング アドバイザーの一時停止はサポートされていません。 [分析の停止] または [分析の停止 (推奨設定を使用)] ツール バー ボタンのいずれかを選択してから [分析の開始] ツール バー ボタンを選択すると、データベース エンジン チューニング アドバイザーによって新しいチューニング セッションが開始されます。
dta ユーティリティを使用する
dta ユーティリティ には、データベースのチューニングに使用できるコマンド プロンプト実行可能ファイルが用意されています。 このファイルにより、バッチ ファイルやスクリプトでデータベース エンジン チューニング アドバイザー機能を使用できるようになります。 dta ユーティリティでは、ワークロードとして、プラン キャッシュ エントリ、トレース ファイル、トレース テーブル、および Transact-SQL スクリプトが使用されます。 また、データベース エンジン チューニング アドバイザー XML スキーマに準拠する XML 入力も使用されます。このスキーマは、この Microsoft Web サイトから入手できます。
dta ユーティリティを使用してワークロードのチューニングを開始する前に、次のことを考慮してください。
ワークロードとしてトレース テーブルを使用する場合、そのテーブルは、データベース エンジン チューニング アドバイザーがチューニングを実行するサーバーと同じサーバー上に存在する必要があります。 他のサーバーにトレース テーブルを作成した場合は、トレース テーブルをデータベース エンジン チューニング アドバイザーでチューニングするサーバーに移動してください。
データベース エンジン チューニング アドバイザーのワークロードとしてトレース テーブルを使用する前に、トレースが停止していることを確認してください。 データベース エンジン チューニング アドバイザーでは、トレース イベントをワークロードとして書き込み中のトレース テーブルには使用できません。
チューニング セッションの実行が予想よりも長く続いている場合、Ctrl キーを押しながら C キーを押してチューニング セッションを停止し、その時点までに dta で完了した分析に基づいて推奨設定を作成できます。 推奨設定を生成するかどうかの確認が要求されます。 Ctrl +
C キーをもう一度押すと、推奨設定を生成せずにチューニング セッションを停止します。
dta ユーティリティの構文と例の詳細については、「dta ユーティリティ」を参照してください。
プラン キャッシュを使用してデータベースをチューニングするには
-ip オプションを指定します。 選択したデータベースの上位 1,000 個のプラン キャッシュ イベントが分析されます。
コマンド プロンプトで、次のコマンドを入力します。
dta -E -D DatabaseName -ip -s SessionName
分析に使用するイベントの数を変更するには、-n オプションを指定します。 次の例では、キャッシュ エントリの数を 2,000 に増やします。
dta -E -D DatabaseName -ip -n 2000-s SessionName1
インスタンスのすべてのデータベースのイベントを分析するには、 -ipf オプションを指定します。
dta -E -D DatabaseName -ip -ipf -n 2000 -s SessionName2
ワークロードと dta ユーティリティの既定の設定を使用してデータベースをチューニングするには
解析時に、データベース エンジン チューニング アドバイザーによって追加、削除、または保有を検討するデータベースの機能 (インデックス、インデックス付きビュー、パーティション分割) を決定します。
ワークロードを作成します。 詳細については、この記事で前述した「ワークロードを作成する」を参照してください。
コマンド プロンプトで、次のコマンドを入力します。
dta -E -D DatabaseName -if WorkloadFile -s SessionName
このコマンドの
-E
はチューニング セッションで (ログイン ID とパスワードではなく) 信頼関係接続を使用することを指定し、-D
はチューニングするデータベースの名前を指定します。 既定では、ユーティリティは、ローカル コンピューター上の SQL Server の既定のインスタンスに接続します。 (リモート データベースを指定したり、-S
名前付きインスタンスを指定したりするには、次の手順で示すように オプションを使用します)。-if
オプションは、ワークロード ファイル (スクリプトまたはトレース ファイルが使用可能) の名前とファイル パスを指定し、-s
はチューニング セッションの名前を指定します。ここで示した 4 つのオプション (データベース名、ワークロード、接続の種類、およびセッション名) は必ず指定する必要があります。
リモート データベースまたは名前付きインスタンスを一定時間チューニングするには
解析時に、データベース エンジン チューニング アドバイザーによって追加、削除、または保有を検討するデータベースの機能 (インデックス、インデックス付きビュー、パーティション分割) を決定します。
ワークロードを作成します。 詳細については、この記事で前述した「ワークロードを作成する」を参照してください。
コマンド プロンプトで、次のコマンドを入力します。
dta -S ServerName\Instance -D DatabaseName -it WorkloadTableName -U LoginID -P Password -s SessionName -A TuningTimeInMinutes
このコマンドの
-S
はリモート サーバー名とインスタンス (またはローカル サーバー上の名前付きインスタンス) を指定し、-D
はチューニングするデータベースの名前を指定します。-it
オプションはワークロード テーブル名を指定し、-U
および-P
はリモート データベースに対するログイン ID とパスワードを指定します。また、-s
はチューニング セッション名を指定し、-A
はチューニング セッションの継続時間を分単位で指定します。 既定では、 dta ユーティリティのチューニング時間は 8 時間に設定されています。 データベース エンジン チューニング アドバイザーによるワークロードのチューニング時間を無制限にする場合は、 オプションを使用して 0-A
(ゼロ) を指定します。
XML 入力ファイルを使用してデータベースをチューニングするには
解析時に、データベース エンジン チューニング アドバイザーによって追加、削除、または保有を検討するデータベースの機能 (インデックス、インデックス付きビュー、パーティション分割) を決定します。
ワークロードを作成します。 詳細については、この記事で前述した「ワークロードを作成する」を参照してください。
XML 入力ファイルを作成します。 詳細については、この記事で後述する「XML 入力ファイルを作成する」を参照してください。
コマンド プロンプトで、次のコマンドを入力します。
dta -E -S ServerName\Instance -s SessionName -ix PathToXMLInputFile
このコマンドの
-E
は信頼関係接続を指定し、-S
はリモート サーバーとインスタンス、またはローカル サーバー上の名前付きインスタンスを指定します。また、-s
はチューニング セッション名を指定し、-ix
はチューニング セッションで使用する XML 入力ファイルを指定します。ユーティリティによるワークロードのチューニングが完了した後、データベース エンジン チューニング アドバイザーの GUI を使用して、チューニング セッションの結果を参照できます。 また、代替手段として、 -ox オプションを使用してチューニングの推奨設定を XML ファイルに書き込むように指定することもできます。 詳細については、「dta ユーティリティ」を参照してください。
XML 入力ファイルを作成する
経験豊かな XML 開発者の場合、 データベース エンジン チューニング アドバイザーで使用できる XML 形式のファイルを作成して、ワークロードをチューニングできます。 このような XML ファイルを作成するには、使い慣れた XML ツールを使用してサンプル ファイルを編集するか、 データベース エンジン チューニング アドバイザーの XML スキーマからインスタンスを生成します。
データベース エンジン チューニング アドバイザーの XML スキーマは、 Microsoft SQL Server インストールの次の場所から入手できます。
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd
データベース エンジン チューニング アドバイザーの XML スキーマは、 Microsoft Web サイトから入手することもできます。
この URL から、多くの SQL Server XML スキーマを入手できるページに移動できます。 データベース エンジン チューニング アドバイザーの行までページを下にスクロールします。
XML 入力ファイルを作成してワークロードをチューニングするには
ワークロードを作成します。 SQL Server Profiler の チューニング テンプレートを使用してトレース ファイルまたはトレース テーブルを使用できます。または、SQL Server の代表的なワークロードを再現する スクリプトを作成できます。 詳細については、この記事で前述した「ワークロードを作成する」を参照してください。
次のいずれかの方法で、XML 入力ファイルを作成します。
「XML 入力ファイルのサンプル (DTA)」の 1 つをコピーし、使い慣れた XML エディターに貼り付けます。 SQL Server インストールに適切な引数を指定するために値を変更し、XML ファイルを保存します。
使い慣れた XML ツールを使用して、 データベース エンジン チューニング アドバイザーの XML スキーマからインスタンスを生成します。
XML 入力ファイルを作成した後、その XML 入力ファイルを dta コマンド ライン ユーティリティへの入力として使用して、ワークロードをチューニングします。 このユーティリティで XML 入力ファイルを使用する方法については、この記事で前述した「dta ユーティリティを使用する」を参照してください。
Note
XML 入力ファイル内で直接指定されるワークロードであるインライン ワークロードを使用する場合、サンプル「インライン ワークロードを使用した XML 入力ファイルのサンプル (DTA)」を使用します。
ユーザー インターフェイスの説明
[ツール] メニュー/[オプション] ページ
このダイアログ ボックスを使用すると、データベース エンジン チューニング アドバイザーの全般的な構成パラメーターを指定できます。
[スタートアップ時]
データベース エンジン チューニング アドバイザーの開始時に実行する操作を指定します。指定できる操作は、データベース接続を行わずに開く、 [新しい接続] ダイアログ ボックスを表示する、新しいセッションを表示する、前回読み込んだセッションを読み込む、のいずれかです。
[フォント変更]
データベース エンジン チューニング アドバイザーの表で使用される表示フォントを指定します。
[最近使用した項目の一覧に表示する項目数]
[ファイル] メニューの [最新のセッション] または [最近使ったファイル] で表示されるセッションやファイルの数を指定します。
[最後のチューニング オプションを保存する]
セッションとセッションの間でチューニング オプションを保持します。 既定でオンになっています。 このチェック ボックスをオフにすると、データベース チューニング アドバイザーは常に既定のオプションで起動します。
[完全にセッションを削除する前に確認する]
セッションを削除する前に、確認のダイアログ ボックスを表示します。
[セッションの分析を停止する前に確認する]
ワークロードの分析を停止する前に、確認ダイアログ ボックスを表示します。
[全般] タブのオプション
セッションのチューニングを始める前に、 [全般] タブのフィールドを設定する必要があります。 [チューニング オプション] タブの設定は、チューニング セッションを開始する前に変更する必要はありません。
[セッション名]
セッションの名前を指定します。 これによって、チューニングするセッションに名前が関連付けられます。 後でこの名前を参照することで、チューニングするセッションを確認できます。
ファイル
ワークロードとなる .sql スクリプトまたはトレース ファイルを指定します。 対応するテキスト ボックスにパスとファイル名を指定します。 データベース エンジン チューニング アドバイザーでは、ワークロード トレース ファイルはロールオーバー ファイルと見なされます。 ロールオーバー ファイルの詳細については、「 Limit Trace File and Table Sizes」を参照してください。
Table
ワークロードのトレース テーブルを指定します。 次のように、対応するテキスト ボックスにトレース テーブルの完全修飾名を指定します。
database_name.owner_name.table_name
トレース テーブルをワークロードとして使用する前に、トレースが停止していることを確認します。
トレース テーブルは、データベース エンジン チューニング アドバイザーでチューニングするサーバーと同じサーバーに置く必要があります。 他のサーバーにトレース テーブルを作成した場合は、トレース テーブルをデータベース エンジン チューニング アドバイザーでチューニングするサーバーに移動してください。
[プラン キャッシュ]
プラン キャッシュをワークロードとして指定します。 このようにすることでワークロードを手動で作成する手間が省けます。 データベース エンジン チューニング アドバイザーによって、分析に使用される上位 1,000 件のイベントが選択されます。
Xml
これはSQL Server Management Studio からワークロードをインポートしない限り表示されません。
SQL Server Management Studio からワークロード クエリをインポートするには:
クエリ エディターにクエリを入力し、選択して強調表示します。
強調表示したクエリを右クリックして、[データベース エンジン チューニング アドバイザーでのクエリの分析] を選択します。
[ワークロード ファイルを参照します。]/[ワークロード テーブルを参照します。]
ワークロードのソースとして [ファイル] または [テーブル] を選択している場合に、この参照ボタンを使用して対象を選択します。
[XML ワークロードをプレビューします。]
SQL Server Management Studioからインポートされた XML 形式のワークロードを表示します。
[ワークロード分析用のデータベース]
データベース エンジン チューニング アドバイザーがワークロードのチューニング時に最初に接続するデータベースを指定します。 チューニングの開始後に、データベース チューニング アドバイザーは、ワークロードに含まれる USE DATABASE
ステートメントで指定されたデータベースに接続します。
[チューニングするデータベースとテーブルの選択]
チューニングするデータベースとテーブルを指定します。 すべてのデータベースを指定するには、 [名前] 列ヘッダーのチェック ボックスをオンにします。 特定のデータベースを指定するには、そのデータベース名の横にあるチェック ボックスをオンにします。 既定では、選択したデータベースのすべてのテーブルが自動的にチューニング対象のセッションに含まれます。 テーブルを除外するには、[選択したテーブル] 列の矢印を選択した後、チューニングの対象にしないテーブルの横にあるチェック ボックスをオフにします。
[選択したテーブル] の下向き矢印
テーブルの一覧を展開して、チューニングするテーブルを個別に選択できます。
[チューニング ログを保存する]
セッション中のログを作成し、エラーを記録します。
Note
データベース エンジン チューニング アドバイザーの [全般] タブに表示されるテーブルの行情報は、自動的に更新されません。代わりに、データベースのメタデータ上に依存します。 行の情報が古くなっていると感じた場合は、対応するオブジェクトに対して DBCC UPDATEUSAGE コマンドを実行してください。
[チューニング オプション] タブのオプション
[チューニング オプション] タブを使用すると、全般的なチューニング オプションの既定の設定を変更できます。 [チューニング オプション] タブの設定は、チューニング セッションを開始する前に変更する必要はありません。
[チューニング時間を制限する]
現在のチューニング セッションの時間を制限します。 チューニングの時間を増やすことにより、推奨設定の品質が向上します。 推奨設定で最良の結果を得るためには、このオプションをオンにしないでください。
Note
データベース エンジン チューニング アドバイザーは、分析中にシステム リソースを使用します。 [チューニング時間を制限する] を使用すると、チューニング対象サーバーでワークロードの増大が予想される期間の前にチューニングを停止できます。
詳細オプション
[チューニング オプションの詳細設定] ダイアログ ボックスを使用すると、最大領域、最大キー列数、およびオンライン推奨インデックスを構成できます。
[推奨インデックス用の最大領域を定義する (MB)]
物理デザイン構造が使用する最大領域として、データベース エンジン チューニング アドバイザーによる推奨値を入力します。
値を入力しない場合は、データベース エンジン チューニング アドバイザーは、次の領域制限より小さい値を想定します。
現在の生データ サイズの 3 倍。このサイズには、データベース内のテーブルのヒープとクラスター化インデックスの合計サイズが含まれます。
アタッチ先のすべてのディスク ドライブの空き容量に生データのサイズを加算した値
[すべてのデータベースのプラン キャッシュ イベントを含める]
すべてのデータベースのプラン キャッシュ イベントが分析されるように指定します。
最大 インデックスごとの最大列数]
任意のインデックスに含める最大列数を指定します。 既定値は 1023 です。
[すべての推奨インデックスをオフラインにする]
可能な限り最良の推奨が生成されますが、物理デザイン構造をオンラインで作成することはお勧めしません。
[可能な限りオンラインの推奨インデックスを生成する]
推奨を実装する Transact-SQL ステートメントを作成するときに、より速いオフライン メソッドが利用可能な場合でも、サーバー オンラインで実装できるメソッドを選択します。
[オンラインの推奨インデックスのみ生成する]
サーバーでオンライン状態を維持できる推奨インデックスのみ生成します。
[停止時刻]
データベース エンジン チューニング アドバイザーを停止する日時を指定します。
[インデックスおよびインデックス付きビュー]
このオプションをオンにすると、クラスター化インデックス、非クラスター化インデックス、およびインデックス付きビューを追加するための推奨設定が含まれます。
インデックス付きビュー
インデックス付きビューを追加するための推奨設定のみが含まれます。 クラスター化インデックスおよび非クラスター化インデックスは、推奨されません。
フィルター選択されたインデックスを含める
フィルター選択されたインデックスを追加するための推奨設定が含まれます。 このオプションは、 [インデックスおよびインデックス付きビュー]、 [インデックス]、または [非クラスター化インデックス]のいずれかの物理デザイン構造を選択した場合に使用できます。
インデックス
クラスター化インデックスおよび非クラスター化インデックスを追加するための推奨設定のみが含まれます。 インデックス付きビューは推奨されません。
[非クラスター化インデックス]
非クラスター化インデックスだけの推奨設定が含まれます。 クラスター化インデックスおよびインデックス付きビューは推奨されません。
[既存の PDS のみ使用を評価する]
現在のインデックスの効果を評価しますが、追加のインデックスまたはインデックス付きビューは推奨されません。
パーティション分割しない。
パーティション分割を推奨しません。
[完全パーティション分割]
パーティション分割の推奨設定を含みます。
[固定パーティション分割]
パーティション分割を簡単に維持できるように、新しく推奨されたパーティションが固定されます。
[既存の PDS を保持しない]
不要な既存のインデックス、ビュー、およびパーティション分割の削除を推奨します。 既存の物理デザイン構造 (PDS) がワークロードに対して有用である場合、 データベース エンジン チューニング アドバイザーは削除を推奨しません。
[インデックスのみ保持する]
既存のインデックスをすべて保持しますが、不要なインデックス付きビューおよびパーティション分割の削除を推奨します。
[既存の PDS をすべて保持する]
既存のインデックス、インデックス付きビュー、およびパーティション分割をすべて保持します。
[クラスター化インデックスのみ保持する]
既存のクラスター化インデックスをすべて保持しますが、不要なインデックス付きビュー、パーティション分割、および非クラスター化インデックスの削除を推奨します。
[固定パーティション分割を保持する]
現在固定されているパーティション分割構造を保持しますが、不要なインデックス付きビュー、インデックス、および固定されていないパーティション分割の削除を推奨します。 推奨される追加のパーティション分割はすべて現在のパーティション分割構成で固定されます。
[進行状況] タブのオプション
データベース エンジン チューニング アドバイザーでワークロードの分析を開始すると、[データベース エンジン チューニング アドバイザー] の [進行状況] タブが表示されます。
チューニング セッションの開始後にセッションを停止する場合、 [アクション] メニューにある次のオプションから 1 つを選択します。
[分析の停止 (推奨設定を使用)] を選択すると、チューニング セッションが停止され、この時点までに実行された分析に基づいて、データベース エンジン チューニング アドバイザーで推奨設定を生成するかどうかを決定するように求めるメッセージが表示されます。
[分析の停止] を選択すると、推奨設定を生成せずにチューニング セッションを停止します。
[チューニングの進行状況]
現在の進行状況の状態を示します。 実行された処理の数、および受け取ったエラー メッセージ、成功メッセージ、警告メッセージの数が表示されます。
詳細
状態を示すアイコンが表示されます。
操作
実行中のステップが表示されます。
Status
アクション ステップの状態が表示されます。
メッセージ
アクション ステップで返されたメッセージが表示されます。
[チューニング ログ]
このチューニング セッションに関する情報が表示されます。 このログを印刷するには、ログを右クリックして [印刷] を選択します。
関連項目
データベース エンジン チューニング アドバイザーからの出力の表示および操作
dta ユーティリティ
チュートリアル:データベース エンジン チューニング アドバイザー