EXPLAINリクエスト修飾子 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLリクエストおよびトランザクション処理

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/arh1512079329802.ditamap
dita:ditavalPath
ja-JP/arh1512079329802.ditaval
dita:id
B035-1142
Product Category
Software
Teradata Vantage

概要

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テキストのいずれにも影響はありません。

USINGリクエスト修飾子を使用しないで、CLIv2データ パーセル フレーバー3 (Data)またはCLIv2パーセル フレーバー71 (DataInfo)のいずれかを使用して指定された、パラメータ化されたリクエストは、次のリクエスト修飾子または文のいずれかを使用して説明できないことに注意してください。
  • EXPLAIN
  • DUMP EXPLAIN
  • INSERT EXPLAIN

データ パーセル フレーバーに関する詳細は、<Teradata® CLI V2リファレンス-メインフレーム接続システム、B035-2417>または<Teradata® Call-Level Interface Version 2リファレンス - ワークステーション接続システム、B035-2418>を参照してください。

EXPLAINテキストと条件式

条件式は単一引用符文字(U+0027)で囲まれます。EXPLAINテキストには、条件式の最初の255文字のみが含まれます。

EXPLAINテキストおよびセッション文字セット

Teradata Databaseは、文字セット レパートリー内にない文字が含まれる、またはUnicode区切りリテラルまたは識別子として印刷不能なEXPLAINテキスト リテラルおよびオブジェクト名を返します。Teradata Databaseがエスケープするのは、16進数のレパートリー外にあるこうした文字だけです。

こうした文字の処理方法とエスケープ文字の使用についてのルールを以下に記します。

  1. バックスラッシュ(U+005C)がセッション文字セットで使用可能な場合、Teradata Databaseはバックスラッシュをエスケープ文字として使用します。
  2. それ以外の場合、円記号(U+00A5)またはウォン記号(U+20A9)がセッション文字セットの0x5Cに存在するのであれば、Teradata Databaseはそれをエスケープ文字として使用します。
  3. これらのいずれの条件も当てはまらない場合、Teradata Databaseはエスケープ文字として番号記号(U+0023)を使用します。この文字は、Teradata Databaseによってサポートされるすべてのセッション文字セットで必要になります。
  4. Teradata Databaseは、変換可能で、語彙的に名前として識別できないオブジェクト名を二重引用符で囲みます。

EXPLAINおよびTeradata Viewpoint

EXPLAINレポートは、ViewpointのTeradata Manager SQL Scratchpadポートレットで確認できます。実行リクエストに対するEXPLAIN出力の概要バージョンを表示するには、Teradata Viewpointクエリー モニター ポートレットを使用します。

Teradata Viewpointを通じて実行されるリクエストに対するEXPLAIN出力を表示するには、Teradata Viewpoint SQLスクラッチパッド ポートレットを使用します。

Teradata Visual Explain

Teradata Visual Explainツールでは、最適化ルーチンの計画の図形的なディスプレイを提供し、さらに同じ結果を返すクエリーの各計画を比較することができます。この機能によってEXPLAINレポートを簡単に解釈することができます。

Teradata Viewpointを使用してTeradata Visual Explainレポートを表示することはできません。

Teradata Visual Explainの詳細については、クエリー リライト、統計、および最適化および<Teradata® Visual Explainユーザー ガイド、B035-2504>を参照してください。