エラーとメッセージ
ワークロード内のチューニングできないイベントによって、エラーやメッセージが生成されます。これらのエラーやメッセージはチューニング ログに書き込まれますが、チューニング セッションは停止しません。エラーやメッセージによって、ユーザーにチューニング セッションに関する有益な情報を提供できる条件がレポートされるため、ユーザーはチューニング処理をより詳しく理解できます。ユーザーはこの情報を使用して、前のチューニング セッションのフィードバックに基づいて入力パラメータを調整できます。この調整によって、データベース エンジン チューニング アドバイザをより効果的に使用できるようになります。
フィードバックは、大きなワークロードを使用してデータベースをチューニングする場合に特に有効です。たとえば、次のいずれかの条件が発生すると、エラーまたはメッセージがチューニング ログに書き込まれます。
- ワークロードによって作成された一時テーブルがデータベースに存在しない場合。
- クエリで参照されたテーブルがチューニング用に選択されなかった場合。
- イベントを解析できなかった場合。
チューニング ログのエントリ
dta コマンド プロンプト ユーティリティを使用するときに -e 引数に値を指定すると、データベース エンジン チューニング アドバイザでチューニング ログにエラーやメッセージを書き込むことができます。または、データベース エンジン チューニング アドバイザのグラフィカル ユーザー インターフェイス (GUI) の [全般] タブで [チューニング ログを保存する] チェック ボックスをオンにできます。データベース エンジン チューニング アドバイザの 2 つのユーザー インターフェイスの使用方法については、「データベースをチューニングする方法」および「dta ユーティリティ」を参照してください。
dta ユーティリティの -e 引数にファイル名またはテーブル名を指定しない場合は、GUI を使用してチューニング ログ情報を表示できます。GUI を使用してチューニング ログを表示するには、チューニング セッションの実行中または終了後に [進行状況] タブをクリックします。詳細については、「チューニング出力を表示する方法」を参照してください。
次の表は、GUI のチューニング ログに含まれている列の一覧です。
チューニング ログの列
列名 | 説明 |
---|---|
CategoryID |
定義済みの識別子 (ID) にレコードをマッピングします。エラーの各インスタンスに ID が割り当てられます。ID は、1 文字のプレフィックスが付いた 3 桁の数値です。プレフィックスを使用すると、ステートメントレベルのエラー、制約レベルのエラー、またはサーバーレベルのエラーに関連するエントリをチューニング ログ テーブルで検索できます。レコードは、プレフィックス文字によって次のように分類されます。
|
Event |
イベントの文字列です (該当する場合)。一部のメッセージはどのイベントにも関連していないため、この列は空白になることがあります。イベント文字列は、ストアド プロシージャ名やバッチなどに対応します。 |
Statement |
データベース エンジン チューニング アドバイザによってイベントが解析され、そのイベントに関連付けられているステートメントがチューニングされます。この列では、ユーザーに返されるメッセージに関連するステートメント (該当する場合) をキャプチャします。ステートメントがメッセージに関連していない場合、この列は空白になります。また、サーバーでイベントを解析できない場合も、この列は空白になります。 |
Frequency |
このレコードの発生回数です。既定値は 1 です。 |
Reason |
ステートメントまたはイベントをチューニングできなかった理由です。このメッセージは、サーバー、ODBC、またはデータベース エンジン チューニング アドバイザによって生成されます。 |
次の表は、前の表の CategoryID 列の説明に記載されているカテゴリに対して返されるメッセージの一覧です。
ステートメント関連のエラーまたはワークロード関連のエラー
カテゴリ ID | チューニング ログ メッセージ |
---|---|
S001 |
ステートメントはテーブルを参照していません。 |
S002 |
ステートメントが参照しているテーブルはチューニングの対象として選択されていません。 |
S003 |
ステートメントは小さいテーブルしか参照していません。 |
S004 |
ステートメントが参照しているインデックス ヒントまたはステートメントには NO EXPAND クエリ ヒントが含まれています。 |
S005 |
ローカル コンピュータのハードウェアの特性と考えられます。 テスト サーバー チューニング モードの使用時に返されます。拡張ストアド プロシージャ xp_msver によってエラーが返されたため、データベース エンジン チューニング アドバイザではリモート コンピュータのハードウェア特性を確認できません。詳細については、「実稼動サーバーのチューニング負荷の軽減」を参照してください。 |
S006 |
アタッチされたディスクで使用できるストレージは無視されます。 データベース エンジン チューニング アドバイザで、アタッチされたディスクで使用可能なストレージ領域に関する情報を収集できないエラーが発生しました。この場合、データベース エンジン チューニング アドバイザでは、使用可能なストレージ サイズが現在の生データ サイズの 3 倍であると見なされます。生データ サイズには、データベース内のテーブルのヒープおよびクラスタ化インデックスが含まれます。 |
S0071 |
チューニングのために、イベント <string> を <string> で置き換えました。 |
S0082 |
イベントはテーブルを参照していません。 |
S0092 |
イベントが参照しているオブジェクトはチューニングの対象として選択されていません。 |
1 データベース エンジン チューニング アドバイザでは、チューニングの目的で sp_cursoropen、sp_executesql、sp_prepare、sp_cursorprepare、sp_prepexec、および sp_cursorprepexec の各イベントが、そのようなイベントに埋め込まれる Transact-SQL 文字列に置き換えられます。エラー メッセージ S007 では、チューニング ログの Reason 列に、元のイベントと置換されたイベントが表示されます。
2 これらはイベントレベルのメッセージなので、チューニング ログの Statement 列は空白になります。
制約関連のエラー
カテゴリ ID | チューニング ログ メッセージ |
---|---|
C002 |
入力構成で指定されたインデックス付きビューにはキーがありませんが、構成の処理では無視されます。 |
C003 または C004 |
ワークロードをチューニングするために設定した時間が既定のチューニング時間かユーザー指定のチューニング時間かを検出し、次のいずれかのメッセージをチューニング ログに記録します (dta.exe では 8 時間、GUI では 1 時間と想定されます)。 既定の時間を使用した場合のメッセージは次のとおりです。 ワークロードのすべてのイベントが分析されませんでした。DTA で想定している既定の時間は 8 時間です。次のいずれかの方法を使用して期間を指定することを検討してください。(1) グラフィカル ユーザー インターフェイスを使用している場合は、[チューニング オプション] タブ ページでチューニング時間を制限します。(2) dta.exe を使用している場合は、-A 引数に最大時間を指定します。(3) XML 入力ファイルを使用している場合は、TuningOptions の下の TuningTimeInMin 要素に最大時間を指定します。 ユーザーが指定した時間を使用した場合のメッセージは次のとおりです。 ワークロードのすべてのイベントが分析されませんでした。次のいずれかの方法を使用して、期間を延長してください。(1) グラフィカル ユーザー インターフェイスを使用している場合は、[チューニング オプション] タブ ページでチューニング時間を制限します。(2) dta.exe を使用している場合は、-A 引数に最大時間を指定します。(3) XML 入力ファイルを使用している場合は、TuningOptions の下の TuningTimeInMin 要素に最大時間を指定します。 |
サーバー関連のエラー
カテゴリ ID | チューニング ログ メッセージ |
---|---|
E000 |
サーバーからの特定のメッセージです。このメッセージは変化します。 |
E001 |
テスト サーバーからの特定のメッセージです。このメッセージは変化します。 |
E002 |
データベースをテスト サーバーで正常に複製できませんでした。 |