17.10 - クエリー計画情報のロギングに使用するBEGIN QUERY LOGGING - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

ロギング対象のSQL DMLリクエストの最適化ルーチン クエリー計画を、DBQLテーブルDBC.DBQLXMLTblにキャプチャすることができます。これを実行するには、XMLPLANをlogging_optionに指定して、実行中のDMLクエリーのクエリー計画をXMLテキストとしてキャプチャできるようにします。

XML形式のクエリー計画情報は、パフォーマンスおよびクエリー計画の問題を診断するのに特に役立ちます。

次の文およびリクエスト修飾子のクエリー計画をXMLPLANオプションでキャプチャすることはできません。
  • DUMP EXPLAIN
  • INSERT EXPLAIN
  • EXPLAIN

また、データベースは、SQLリクエストで参照されるオブジェクトのテキスト定義は記録しません。代わりにシステムは、必要な場合に、データ ディクショナリからテキスト定義をフェッチするためのキーとして使用できる、短い識別子を記録します。

XMLPLANロギングは、INSERT EXPLAINリクエストでキャプチャされる情報の代替ではありません。その理由は次のとおりです。
  • 生成される各文書の内容以外にも、XMLPLANロギングとINSERT EXPLAINリクエストの間には、次の表に示す別の重要な違いがあります。
    BEGIN QUERY LOGGING … XMLPLAN INSERT EXPLAIN
    実行済みクエリーのクエリー計画をXML形式で記録します。 クエリーを実行しないでクエリー計画をキャプチャします。

    実行中のワークロードに対するクエリー計画を記録する場合、INSERT EXPLAINリクエストを使用して、それらのワークロード内のリクエストに対するクエリー計画をキャプチャする方法は遅すぎてニーズに合わないとわかったなら、XMLPLANのロギングが適しています。

    一方、クエリーのチューニングをするだけであって実行はしない場合、INSERT EXPLAINリクエストを使用してリクエストのクエリー計画をキャプチャする場合と比べて、XMLPLANロギングはそれほど有用ではありません。

    この場合には、INSERT EXPLAIN INTO QCD_nameIN XMLリクエスト、またはEXPLAIN IN XML SQL_requestを実行する方法が、類似した代替手段となります。DUMP EXPLAINリクエストを使用して、XML形式でクエリー計画をキャプチャすることはできません。

  • 従来のDBQLテーブルの実行時の情報も、ログ対象の計画についてキャプチャされます。
  • XMLPLANロギングは、Query Capture Facilityの拡張機能というだけでなく、クエリー ロギングの拡張機能です。

EXPLAINオプションは、キャッシュされたリクエストについて行を記録しません。