以下の例では、XMLデータ型関数およびメソッドを使用して、BEGIN QUERY LOGGINGやREPLACE QUERY LOGGINGのXMLPLANオプションによって生成されたXML文書からの情報を抽出する方法を示します。
詳細については、<Teradata XML>を参照してください。
また、INSERT EXPLAIN文とIN XMLオプション、またはBEGIN QUERY CAPTUREを使用してXML計画文書を作成し、そこから情報を抽出することもできます。
XMLEXTRACTを使用したXML計画からの情報の抽出
この例では、XMLEXTRACTメソッドを使用して、XML計画から問合わせ実行計画情報を抽出します。IPEEligibility属性は、計画が増分計画および実行最適化に適格かどうかを示します。この場合、問合わせが返すIPEEligibility値はリクエストが適格でないことを示します。
select createxml(xmltextinfo).xmlextract( '//Plan/@IPEEligibility', 'default=http://schemas.teradata.com/queryplan') as IPEEligibility from dbc.qrylogv l, dbc.qrylogxmlv x where l.queryid = x.queryid and l.statementtype = 'Select'; *** Query completed. One row found. One column returned. *** Total elapsed time was 1 second. IPEEligibility ----------------------------------------------------------------------- IPEEligibility="NotEligible"
XMLTABLEを使用したステップ詳細の抽出
この例では、XMLTABLEテーブル関数を使用して、結合情報を含むステップ詳細をXML文書から抽出する方法を示します。
select steplev1num, stepname, jointype, joinkind from ( select l.queryid, createxml(xmltextinfo) as plan from dbc.qrylogv l, dbc.qrylogxmlv x1 where l.queryid = x1.queryid and l.statementtype = 'Select') as x2, xmltable( xmlnamespaces(default 'http://schemas.teradata.com/queryplan'), '//PlanStep' passing by value x2.plan columns "QueryID" decimal(18,0) path '../../@QueryID', "StepLev1Num" integer path './@StepLev1Num', "StepName" char(4) path './@StepName', "JoinType" char(10) path './StepDetails/JIN/@JoinType', "JoinKind" char(10) path './StepDetails/JIN/@JoinKind') as t ( "QueryID", "StepLev1Num", "StepName", "JoinType", "JoinKind") where x2.queryid = t.queryid order by t.queryid, steplev1num; *** Query completed. 6 rows found. 4 columns returned. *** Total elapsed time was 1 second. StepLev1Num StepName JoinType JoinKind ----------- -------- ---------- ---------- 1 MLK ? ? 2 MLK ? ? 3 MLK ? ? 4 RET ? ? 5 JIN Inner Merge Join 6 Edt ? ?