17.00 - 17.05 - EXPLAINリクエスト修飾子 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
ユーザー ガイド
Publication ID
B035-1142-170K-JPN
Language
日本語 (日本)

概要

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® CLI V2ワークステーション接続システム、B035-2418>を参照してください。

EXPLAINテキストと条件式

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

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

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

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

  1. バックスラッシュ(U+005C)がセッション文字セットで使用可能な場合、データベースはバックスラッシュをエスケープ文字として使用します。
  2. それ以外の場合、円記号(U+00A5)またはウォン記号(U+20A9)がセッション文字セットの0x5Cに存在するのであれば、データベースはそれをエスケープ文字として使用します。
  3. これらのいずれの条件も当てはまらない場合、データベースはエスケープ文字として番号記号(U+0023)を使用します。この文字は、Teradataによってサポートされるすべてのセッション文字セットで必要になります。
  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>を参照してください。