WITHロギング オプション - Advanced SQL Engine - Teradata Database

Teradata Vantage™- データベースの管理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/upb1600054424724.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

BEGIN/REPLACE QUERY LOGGING文で使用できるWITHロギング オプションを使用すれば、以下でリストした適切なテーブルへのロギングが可能になります。

DBQLオプション ログ先
WITH ALL 次のテーブルです。
  • DBC.DBQLogTbl
  • DBC.DBQLExplainTbl
  • DBC.DBQLObjTbl
  • DBC.DBQLStepTbl
  • DBC.DBQLSQLTbl
WITH EXPLAIN
  • DBC.DBQLogTbl
  • DBC.DBQLExplainTbl
WITH FEATUREINFO DBC.DBQLogTbl
WITH LOCK= n DBC.DBQLXMLLockTbl
WITH [NO COLUMNS] OBJECTS
  • DBC.DBQLogTbl
  • DBC.DBQLObjTbl
WITH NONE なし。このオプションは、指定したユーザー/アカウント、ユーザー/アカウントのリスト、またはアプリケーションのロギングを無効にします。
WITH PARAMINFO DBC.DBQLParamTbl
WITH SQL
  • DBC.DBQLogTbl
  • DBC.DBQLSQLTbl
WITH [DETAILED] STATSUSAGE DBC.DBQLXMLTbl
WITH STEPINFO
  • DBC.DBQLogTbl
  • DBC.DBQLStepTbl
WITH USECOUNT DBC.ObjectUsage
WITH UTILITYINFO DBC.DBQLUtilityTbl
WITH [VERBOSE] XMLPLAN
  • DBC.DBQLogTbl
  • DBC.DBQLXMLTbl
WITH ALLオプションでは、DBQLXMLTblとDBQLXMLLOCKTblを除く、すべてのDBQLテーブルへのロギングが有効になります。WITH NONEでは、指定したユーザー/アカウント、ユーザーのリスト、アカウント リスト、アプリケーションのロギングが無効になります。

次のテーブルは、さまざまなWITHオプションについてさらに詳しく示します。

パラメータ ロギング動作
WITH ALL WITH ALLオプションは、選択したユーザーに関してのみ限定的に使用してください。このオプションはCPUリソースを大量に消費し、(DBC 固定領域を消費する)ログを急速に大きくする可能性があります。

WITH ALLは、以下のWITHルールで生成された情報を記録します。すなわち、EXPLAIN、OBJECT、SQL、およびSTEPINFOです。XMLPLAN、LOCK、FEATUREINFO、STATSUSAGE、PARAMINFO、およびUTILITYINFOで生成された情報は記録しません。WITH ALLオプションでは、以下が生成されます。

  • LIMIT SQLTEXT=0を定義していなければ、各問合わせごとにSQL文の最初の200文字を含むデフォルトの1行をDBQLogTblに
  • 1つの問合わせの1つのターゲット オブジェクトにつき1行をDBQLObjTblに
  • 1つの問合わせの1つのステップにつき1行をDBQLStepTblに
  • 各SQL文ごとに1行以上をDBQLSQLTblに
  • 1つの問合わせにつき1行以上をDBQLStepTblに
WITH EXPLAIN このオプションは、問合わせのEXPLAINを生成し、それをDBQLExplainTblに記録します。EXPLAINテキストが31,000文字を超える場合は、複数の行が生成され、ExpRowNoフィールドに行番号が表示されます。

このオプションは、DBQLogTbl.にデフォルト行を挿入します。

WITH EXPLAINは各リクエストについて未フォーマットのEXPLAINテキストを生成して記録します。EXPLAINリクエスト修飾子より前のリクエストについてはEXPLAINテキストを生成せず、キャッシュされたリクエストについても行を記録しません。

WITH EXPLAINオプションと一緒に、SUMMARYオプション、またはTHRESHOLDオプションを指定することはできません。
WITH FEATUREINFO このオプションは、SQLリクエストが使用した機能をキャプチャし、DBQLogTblのFeatureUsage列にその情報を記録します。パーシング エンジン(PE)に表示される機能の使用のみがキャプチャされます。機能がAMPのみで表示される場合、このオプションはその機能の情報をキャプチャしません。このオプションは、データベース機能のサード パーティによるアプリケーションの使用を追跡します。
WITH LOCK=n n/100秒より長いすべてのロック競合をXML形式でDBQLXMLLOCKTblに記録します。nの許容される最小値は5です。

Viewpointロック ビューアー ポートレットを使用してDBQLロック ログにアクセスできます。あるいは、システム テーブルDBC.DBQLXMLLOCKTblまたはビューDBC.QrylockLogXML[V]に対する問合わせを実行することもできます。

セッションのログオン時にアクティブなDBQLロック ロギングのルールは、セッションのログオンの後にロック ロギングが無効か有効かにかかわらず、セッションの期間中に適用されます。
WITH NONE このオプションを指定すると、指定したユーザー、ユーザー/アカウントのペア、ユーザー/アカウントのリスト、アプリケーション名、またはアプリケーション名のリストについてロギングが実行されなくなります。

例えば、すべてのユーザーについてデフォルトのロギングを実行するルールがある場合、次の文を発行すると、user1という特定のユーザーに関するロギングを除外できます。

BEGIN QUERY LOGGING WITH NONE ON user1;
WITH [NO COLUMNS]
OBJECTS このオプションは、データベース、テーブル、列、およびインデックスの情報をDBQLObjTblに記録します。

このオプションは、SUMMARYまたはTHRESHOLDと同時に使用できます。

このオプションは以下を挿入します。
  • 1つのデフォルト行をDBQLogTblに
  • 1つの問合わせの1つのターゲット オブジェクトにつき1行をDBQLObjTblに

このオプションは限定的に使用してください。オブジェクト データは、結合インデックスやインデックス付きアクセスを頻繁に使用する問合わせの分析に役立ちますが、多数の行を生成する可能性があります。

デフォルトで、WITH OBJECTSオプションは、問合わせで参照される各列での個々の行を記録します。NO COLUMNSサブオプションは、列のロギングをオフにします。このサブオプションは、多数の列をともなうテーブルで特に便利です。NO COLUMNSを使用すると、オーバーヘッドを削減しDBQLObjTblテーブルのサイズを制御できます。

問合わせの処理中にシステムが使用するDBCデータベースのテーブルと列については、DBQLオブジェクト行内にテーブルと列の名前は反映されません。DBCテーブルにアクセスする文が実行されても、DBCテーブルは表示されません。例えば、CREATE TABLEやSELECT FROM DBC.xxxなどの文では、文で生成されるプランで参照されるすべてのオブジェクトがDBCテーブルおよび列であるため、DBQLによってログに記録されるオブジェクトはありません。ただし、同じ文からアクセスされる他のオブジェクトについては、DBC.DBQLObjTblに記録されます。

また、最適化された特定のリクエストは、ディスパッチャをバイパスする場合があり、DBQLはそのようなリクエストを記録しないことに注意してください。

マクロ、ビュー、トリガーの名前が表示されます。マクロまたはビューに示されるテーブルおよび列は、基本テーブルのもので、マクロまたはビューのフィールド名ではありません。DBQLObjTbl内のオブジェクトは、最適化ルーチンが実際にアクセスするオブジェクトで、必ずしもSQL文に現れるオブジェクトではありません。

WITH PARAMINFO このオプションは、パラメータ化されたリクエスト変数名、タイプ、位置、および値をDBQLParamTblに記録します。
WITH SQL このオプションは、すべてのSQL文のテキスト全体をDBQLSqlTblに記録します。以下を挿入します。
  • 1つのデフォルト行をDBQLogTblに
  • ログ対象となっている各ユーザーに関するそれぞれのリクエストのSQL文全体をログに記録します。文が大きい場合、問合わせテキストをすべて記録するために、複数行として書き込まれることがあります。
このオプションは、THRESHOLDと同時に使用できます。

DBQLは基本テーブルに関する情報のロギング、および直接のSQL文のロギングに制限されます。マクロ、ビュー、トリガーは、部分的なログ情報として記録されます。例えば、トリガー内のSQL文はDBQLに記録されません。ただし、アクションのトリガーとなるSQL文は記録されます。

WITH SQLオプションを指定する際にLIMIT SQLTEXT=0を設定すると、DBQLogTblでSQLが重複することが避けられます。
WITH [DETAILED] STATSUSAGE このオプションは、クエリー最適化ルーチンの統計と、クエリーの最適化が実行されるDMLリクエストの使用上の推奨事項を記録します。記録されたデータは、XML文書としてDBC.DBQLXMLTblに格納され、DBC.QryLogXML[V]ビューからアクセスできます。WITH [DETAILED] STATSUSAGEは、EXPLAIN、INSERT EXPLAIN、およびDUMP EXPLAINの各リクエストを記録しません。

データを自動統計機能(特にAnalyzeStatsUsageオープンAPI)に提供するためには、このオプションを有効にします。Teradata Viewpoint統計マネージャ ポートレットを使用してオープンAPIにアクセスすることを推奨します。詳細については、自動統計管理についてを参照してください。

ロギング オプションXMLPLANも有効にする場合、両方のオプションからのデータは1つの文書に記録されます。STATSUSAGEのみを有効にしたときに、最適化された文に関連する統計の利用状況データがない場合、オーバーヘッドを削減するため、文書は記録されません。

このオプションには、DBC.dbqlaccessmacroに対するGRANT EXECUTE権限が必要です。ALLオプションを指定した場合、このオプションは無効です。

DETAILEDサブオプションは、問合わせプランで参照されるすべてのオブジェクトの既存の統計からXML形式でサマリー統計の詳細を記録します。

DETAILEDサブオプションは、以下の統計詳細を記録します。
  • StatTimeStamp
  • Version
  • OrigVersion
  • NumColumns
  • NumBValues
  • NumEHIntervals
  • NumHistoryRecords
  • NumNulls
  • NumAllNulls
  • NumAMPs
  • NumPNullDistinctVals
  • AvgAmpRPV
  • PNullHighModeFreq
  • AvgAmpRPV
  • HighModeFreq
  • NumDistinctVals
  • NumRows
  • CPUUsage
  • IOUsage

DETAILEDは、地理空間統計をサポートしません。

WITH STEPINFO このオプションは、AMPのステップ レベル情報をDBQLStepTblに記録します。問合わせが終了すると、並列ステップを含め、問合わせステップごとに1行を記録します。

WITH STEPINFOオプションは、DBQLogTblにデフォルト行を挿入します。

このオプションは、THRESHOLDと同時に使用できます。
WITH UTILITYINFO このオプションは、以下のユーティリティに対しユーティリティ情報をDBC.DBQLUtilityTblに記録します。
  • FastLoadProtocol: FastLoad、Teradata Parallel Transport (TPT) Loadオペレータ、JDBC FastLoad。
  • MLOADプロトコル: MultiLoadおよびTPT Updateオペレータ。
  • MLOADXプロトコル: TPT Updateオペレータ。
  • FastExportプロトコル: FastExport、TPT Exportオペレータ、JDBC FastExport。
  • Data Stream Architecture。
WITH USECOUNT このオプションは、データベースまたはユーザーの使用カウント情報を記録します。

ユーザーのUSECOUNTを指定する場合は、その他のロギング オプションをどれでも指定できます。データベースのUSECOUNTを指定する場合、その他のロギング オプションは指定できません。

アカウント文字列にWITH USECOUNTオプションを有効にすることはできません。
WITH [VERBOSE] XMLPLAN このオプションは、クエリー計画をXML形式でDBQLXMLTblに記録し、デフォルト行をDBQLogTblに挿入します。

例えば、次の文はUser1によって実行されたすべてのDML文のXMLプランを記録します。

BEGIN QUERY LOGGING WITH XMLPLAN LIMIT SQLTEXT=0 on User1;

このオプションはEXPLAINリクエスト修飾子、DDLリクエスト、またはINSERT EXPLAIN文およびDUMP EXPLAIN文の問合わせプランは記録しません。

XMLプランには問合わせテキストとEXPLAINテキストが含まれるため、TeradataではXMLPLANオプションを使用する際には、WITH EXPLAINオプションやWITH SQLオプションを一緒に使用しないことを推奨しています。問合わせテキストとEXPLAINテキストがDDL文に必要ない場合は、SQLTEXTを0に設定(SQLTEXT=0)して冗長ロギングを避けてください。

このオプションがログに関して生成するXMLスキーマは、http://schemas.teradata.com/queryplan/queryplan.xsdにあります。

  • WITH XMLPLANは、THRESHOLDおよびSUMMARYなどの制限オプションと一緒に使用できません。
  • VERBOSEサブオプションは、問合わせのVERBOSE EXPLAINテキストをXML形式で記録し、EXPLAIN自体では使用できないSpoolAsgnListおよびHashFieldsの詳細も含めます。

SQL構文の詳細については、 <Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「BEGIN QUERY LOGGING」と「REPLACE QUERY LOGGING」を参照してください。