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
日本語 (日本)

BEGIN QUERY LOGGINGとともに設定するロギング オプションは、DBQLRuleTblのDBQLOptionsフィールドに記録されます。

ロギング オプション マスク値 標識ビット位置
EXPLAIN 2 2
SQL 4 3
OBJECTS 8 4
STEPINFO 16 5
XMLPLAN 32 6
SUMMARY 64 7
THRESHOLD 128 8
STATSUSAGE 256 9
LOCK 512 10
VERBOSE 1024 11
DETAILED STATSUSAGE 2048 12
USECOUNT 4096 13
UTILITYINFO 8192 14
PARAMINFO 16384 15
オプション 定義
ALL すべてのログオン ユーザーのクエリーのオブジェクト情報、ステップ情報、EXPLAINテキスト、すべてのSQLリクエストをログに記録します。この処理は、EXPLAIN、OBJECTS、SQL、STEPINFOの各オプションを個別に指定した場合の処理と同じです。

ALLオプションには、LOCK、PARAMINFO、STATSUSAGE、XMLPLAN、またはUTILITYINFOは含まれてません。

このオプションは、SUMMARYまたはTHRESHOLD制限オプションを呼び出しません。

THRESHOLD制限オプションを指定する場合は、ALLロギング オプションを指定できません。

ALLを指定する場合は、SQLTEXTの値として0を指定し、SQLリクエストのテキストがDBC.DBQLogTblテーブルとDBC.DBQLSqlTblテーブルの両方で記録されないようにしてください。

ALLを指定する場合は、他のロギング オプションを指定できません。

EXPLAIN リクエストの不定形式のEXPLAINテキストをログに記録します。

THRESHOLD制限オプションを指定する場合でも、EXPLAINロギング オプションを指定することはできません。

このオプションを指定すると、各リクエストの不定形式のEXPLAINテキストが生成され、ログに記録されます。ただし、EXPLAINリクエスト修飾子が先頭に付いているリクエストについては、EXPLAINテキストは生成されません。

例えば、以下のリクエストについては、EXPLAINテキストはログに記録されません。

EXPLAIN SELECT *
        FROM table_a ; /* EXPLAIN text logging
                          does  not  occur     */

同じクエリーを実行する場合でも、先頭にEXPLAIN修飾子が付いていなければ、不定形式のEXPLAINテキストがログに記録されます。

SELECT *
FROM table_a;  /* EXPLAIN text logging
                  does  occur          */

クエリーのEXPLAINテキストを生成する際にパフォーマンスの影響が出るため、このオプションの指定には注意が必要です。

LOCK=n 100分のn秒を超えるロック競合をXML形式でDBQLXMLLockTblに記録します。ロック プラン データを断片化する方法など、DBQLXMLLockTblの詳細については、<Teradata Vantage™ - データベースの管理、B035-1093>を参照してください。
OBJECTS 指定するユーザー セットのSQLリクエストのアクセス対象になっているデータベース、テーブル、列、インデックスに関する情報をログに記録します。

THRESHOLD制限オプションを指定する場合でも、OBJECTSロギング オプションを指定することは可能です。

このオプションを指定しても、マクロやビューに関する処理はログに記録されません。ディクショナリ テーブルやその列に関する処理もログに記録されません。例えば、CREATE TABLEの場合でも、DBQLシステムに含まれているオブジェクトの情報はログに記録されません。文によって生成されるのは、ディクショナリ オブジェクトだけだからです。例えば、以下のようなクエリーでは、どのオブジェクトの情報もログに記録されません。そのクエリーでは、ディクショナリ テーブルに対するアクセスが行なわれるだけだからです。

SELECT *
FROM DBC.TVFields;
PARAMINFO パラメータ値とメタデータがDBQLParamTblに記録されます。
SQL 指定するユーザー セットによって実行されるすべてのSQLリクエストの完全テキストがシステム テーブルDBC.DBQLSqlTblに記録されます。

THRESHOLD制限オプションを指定する場合でも、SQLロギング オプションを指定することは可能です。

このオプションを指定しても、SQLプロシージャ、マクロ、ビュー、トリガーの中にあるSQLリクエストの情報はログに記録されません。

STATSUSAGE クエリーの最適化でカーディナリティの見積もりが必要なDMLリクエストがシステム テーブルDBC.DBQLXMLTblにXML文書として記録されます。

STATSUSAGEとXMLPLANを一緒に指定すると、データベースは、収集したデータを1つの統合文書に記録します。

このオプションでログに記録されるデータは、制限オプションTHRESHOLDまたはSUMMARYの影響を受けません。

STATSUSAGEを指定しても、EXPLAINの対象になっているリクエストや、DUMP EXPLAIN文とINSERT EXPLAIN文に関する処理はログに記録されません。これらの文やEXPLAINリクエスト修飾子の詳細については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。

ALLオプションにSTATSUSAGEは含まれていません。

STEPINFO 指定するユーザー セットによって実行されるすべてのSQLリクエストのAMPステップ レベル情報がシステム テーブルのDBC.DBQLStepTblに記録されます。

THRESHOLD制限オプションを指定する場合でも、STEPINFOロギング オプションを指定することは可能です。

USECOUNT データベースまたはユーザーについて収集した使用回数をログに記録します。

ユーザーに対してUSECOUNTを指定する場合、他の任意のロギング オプションを指定できます。

データベースに対してUSECOUNTを指定する場合、他のロギング オプションはどれも指定できません。そうしないと、システムはリクエスト側にエラーを返します。

BEGIN QUERY LOGGINGリクエストを送信するときに、データベースまたはユーザーの使用回数とタイムスタンプをリセットします。

UTILITYINFO ユーティリティ情報がDBC.DBQLUtilityTblに記録されます。
XMLPLAN SQL DMLリクエストの最適化ルーチンによって生成されるクエリー計画がシステム テーブルDBC.DBQLXMLTblにXML文書として記録されます。

問題のあるクエリーを記録するときのベスト プラクティスとして、XMLPLANロギングを指定することを推奨します。XMLPLANオプションはクエリー計画と追加の詳細をキャプチャして、パフォーマンス問題の診断を支援します。

XMLPLANとSTATSUSAGEを一緒に指定すると、データベースは、収集したデータを1つの統合文書に記録します。

DDL文のStatementTypeや対応するStepNamesなど、基本情報を記録します。さらに、次の詳細情報を記録します。
  • COLLECT STATISTICS
  • CREATE INDEX
  • CREATE TABLE
  • DROP INDEX
  • DROP TABLE

XMLPLANでは、FastLoadジョブとMultiLoadジョブの詳細情報もログに記録されます。

XMLPLANを指定すれば、XML文書にクエリーとステップのテキストが組み込まれるので、通常はEXPLAINオプションとSQLオプションを指定する必要はありません。さらに、XMLPLANを指定する場合は、SQLTEXTの値として0を指定して、冗長なロギングを回避するようにしてください。

XMLPLANオプションを指定しても、EXPLAINリクエスト修飾子やINSERT EXPLAINリクエストとDUMP EXPLAINリクエストのクエリー計画はログに記録されません。

XMLPLANは、ALLオプションに含まれていません。

THRESHOLD制限オプションを指定する場合でも、XMLPLANロギング オプションを指定することはできません。