EXPLAINリクエスト修飾子は、SQLリクエストの先頭に追加された場合、SQLリクエストを処理するための最適化ルーチン計画に関する静的なステップ バイ ステップのサマリーを返します。EXPLAINリクエスト修飾子の構文、使用上の注意、その他の操作上の側面については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。
EXPLAINは、クエリー設計者にとっては非常に役立つユーティリティです。返される出力には、最適化ルーチンが処理する必要がある統計を考慮して、最適化ルーチンが実行するリクエストの処理手順と、リクエストの完了に要する推定時間がリストされます。この出力は、最適化ルーチンがリクエストの処理に使用するインデックスを示し、生成される中間スプールを特定し、実行される結合タイプを示し、トランザクションのリクエストが並列でディスパッチされるかどうかを示すほか、リクエストに固有の情報を提供します。
EXPLAINは、クエリーを評価し、より効率的な代替の処理戦略を作成するのに役立ちます。増分計画および実行(IPE)に適格なリクエストについては、DYNAMIC EXPLAINが同様の機能を提供します。
EXPLAIN出力でレポートされる時間は秒単位で示されますが、時間の単位は実際には任意です。これは、同じクエリーの他のコーディング式と相対的なパフォーマンスを比較できるようにしています。
システム条件が変更された場合は、システム上で最終的に実行されるリクエストの計画が、EXPLAIN出力に表示される計画と異なることがあります。例えば、システム統計やデータ デモグラフィックの変更や、IPEの動的計画が原因で、前の手順の結果に基づいて計画手順が変更されることがあります。DBQLを使用すると、クエリーの実際の実行に関連付けられたEXPLAIN出力をログに記録できます。DBQLの詳細については、<Teradata Vantage™ - データベースの管理、B035-1093>を参照してください。
EXPLAINの結果は、システム関連のドキュメントと一緒に保管してください。データベース設計の再評価に役立つほか、システムのアップグレードや移行の後に発生する可能性のある問題を特定した解決に役立つためです。
SQLリクエストのみを処理するEXPLAINリクエスト修飾子
有効なTeradata SQLリクエストはEXPLAINで修飾できます。USINGリクエスト修飾子、別のEXPLAINリクエスト修飾子、または個々の関数、ストアド プロシージャ、またはメソッドをEXPLAINすることはできません。
パラメータ化されたデータ パーセル値のEXPLAINレポートに対する影響
リクエストでUSINGデータを指定する場合、またはDATE、CURRENT_DATE、CURRENT_TIMESTAMP、USER組み込み関数を指定する場合、もしくはその両方を指定する場合、リクエスト キャッシュ参照を起動することができます(パラメータ化されたリクエストを参照)。これが発生すると、EXPLAINテキストはピークされたリテラル値を報告します。
USINGデータを指定しない場合、またはUSING変数、DATE値、CURRENT_DATE値、CURRENT_TIMESTAMP値、またはUSER値が参照されない場合、もしくはそれらが参照されない場合、生成された計画と生成されたEXPLAINテキストのいずれにも影響はありません。
- EXPLAIN
- DUMP EXPLAIN
- INSERT EXPLAIN
データ パーセル フレーバーに関する詳細は、<Teradata® CLI V2メインフレーム接続システム、B035-2417>または<Teradata® CLI V2ワークステーション接続システム、B035-2418>を参照してください。
EXPLAINテキストと条件式
条件式は単一引用符文字(U+0027)で囲まれます。EXPLAINテキストには、条件式の最初の255文字のみが含まれます。
EXPLAINテキストおよびセッション文字セット
データベースは、文字セット レパートリー内にない文字が含まれる、またはUnicode区切りリテラルまたは識別子として印刷不能なEXPLAINテキスト リテラルおよびオブジェクト名を返します。データベースがエスケープするのは、16進数のレパートリー外にあるこうした文字だけです。
こうした文字の処理方法とエスケープ文字の使用についてのルールを以下に記します。
- バックスラッシュ(U+005C)がセッション文字セットで使用可能な場合、データベースはバックスラッシュをエスケープ文字として使用します。
- それ以外の場合、円記号(U+00A5)またはウォン記号(U+20A9)がセッション文字セットの0x5Cに存在するのであれば、データベースはそれをエスケープ文字として使用します。
- これらのいずれの条件も当てはまらない場合、データベースはエスケープ文字として番号記号(U+0023)を使用します。この文字は、Teradataによってサポートされるすべてのセッション文字セットで必要になります。
- Vantageは、変換可能で、語彙的に名前として識別できないオブジェクト名を二重引用符で囲みます。
EXPLAINおよびTeradata Viewpoint
EXPLAINレポートは、ViewpointのTeradata Manager SQL Scratchpadポートレットで確認できます。実行リクエストに対するEXPLAIN出力の概要バージョンを表示するには、Teradata Viewpointクエリー モニター ポートレットを使用します。
Teradata Viewpointを通じて実行されるリクエストに対するEXPLAIN出力を表示するには、Teradata Viewpoint SQLスクラッチパッド ポートレットを使用します。