Hitachi

Hitachi Advanced Data Binder AP開発ガイド


6.1.5 詳細表示に出力される情報

詳細表示には,次の情報が出力されます。

なお,詳細表示は,問合せツリーに出力されている問合せに詳細情報がある場合に限り出力されます。

〈この項の構成〉

(1) 表の検索方式,インデクス,および集まり導出表に関する情報

表の検索方式,インデクス,および集まり導出表に関する情報の出力形式の例を次に示します。

出力形式の例1

[図データ]

出力形式の例2

[図データ]

(a) 表の検索方式に関する情報

表の検索方式に関する情報には,次のどれかが出力されます。

  • TABLE SCAN

    表の検索処理で,テーブルスキャンが実行されることを示しています。

  • INDEX SCAN(スキーマ名.表識別子(問合せ名または相関名))

    表の検索処理で,インデクススキャンが実行されることを示しています。問合せ名または相関名がある場合は,問合せ名または相関名が表示されます。

  • KEY SCAN

    表の検索処理で,キースキャンが実行されることを示しています。

テーブルスキャン,インデクススキャン,およびキースキャンについては,「5.1 表の検索方式」を参照してください。

出力例
<<Detail   >>
 
QUERY : 1
     3 INDEX SCAN(ADBUSER01.T1)
       INDEX NAME        : IDX_C1C2
        INDEX TYPE       : B-TREE
        INDEX COLUMN     : C1 ASC (IN)
        INDEX COLUMN     : C2 ASC (>)
       INDEX NAME        : RIDX_C2
        INDEX TYPE       : RANGE
        SKIP COND        : CHUNK (HASH)
        INDEX COLUMN     : C2
[説明]

T1の検索処理で,インデクススキャンが実行されることを示しています。

(b) インデクスに関する情報

インデクスに関する情報の出力形式を次に示します。

出力形式(B-treeインデクスの場合)
INDEX NAME        : B-treeインデクス名 (一意性制約情報)
 INDEX TYPE       : インデクスの種別
 INDEX COLUMN     : インデクス構成列名 キー値の並び順 (サーチ条件)
  • 一意性制約情報

    このB-treeインデクスがユニークインデクスの場合,一意性制約情報が出力されます。次のどちらかが出力されます。

    UNIQUEこのユニークインデクスが,一意性制約に違反していない状態であることを示しています。

    UNIQUE INVALIDこのユニークインデクスが,一意性制約に違反している状態であることを示しています。

  • インデクスの種別

    B-treeインデクスの場合,インデクスの種別にB-TREEが表示されます。

  • キー値の並び順

    B-treeインデクスの定義時に指定したB-treeインデクスのキー値の並び順が出力されます。次のどちらかが出力されます。

    ASC昇順にキー値が並んでいます。

    DESC降順にキー値が並んでいます。

  • サーチ条件

    サーチ条件が次のどれかの形式で出力されます。

    =<<=>>==ANYBETWEEN({<,<|<,<=|<=,<|<=,<=})INLIKEIS NULL

サーチ条件の出力規則
  • インデクス構成列にサーチ条件が指定されていない場合は,noneが出力されます。

  • IN 表副問合せ」や「限定述語の=SOME」をサーチ条件に指定した場合,=ANYが出力されます。

  • 比較述語の左側に単独の列指定以外を指定した場合,探索条件がHADBサーバによって等価変換されます。サーチ条件には,等価変換後の比較述語の比較演算子が出力されます。

    (例)

    SELECT文のWHERE句に指定された探索条件

    WHERE 10 < C1

    HADBサーバによって等価変換された探索条件

    WHERE C1 > 10

    アクセスパス情報のサーチ条件に出力される情報

    INDEX COLUMN: C1 ASC (>)

出力形式(テキストインデクスの場合)
INDEX NAME        : テキストインデクス名
 INDEX TYPE       : インデクスの種別
 INDEX COLUMN     : インデクス構成列名
  • インデクスの種別

    テキストインデクスの場合,インデクスの種別にTEXTが表示されます。

出力形式(レンジインデクスの場合)
INDEX NAME        : レンジインデクス名
 INDEX TYPE       : インデクスの種別
 SKIP COND        : レンジインデクス条件の種別
 INDEX COLUMN     : インデクス構成列名
  • インデクスの種別

    レンジインデクスの場合,インデクスの種別にRANGEが表示されます。

  • レンジインデクス条件の種別

    使用されるレンジインデクス条件として,次のどれかが出力されます。

    • CHUNKチャンクのスキップ条件を使用します。

    • SEGMENTセグメントのスキップ条件を使用します。

    • CHUNK AND SEGMENTチャンクのスキップ条件とセグメントのスキップ条件の両方を使用します。

    また,ハッシュジョインまたは副問合せの処理方式のハッシュ実行の際に,ハッシュテーブルとの突き合わせを行う条件に指定された列に対して,レンジインデクスが使用される場合,(HASH)が出力されます。

    出力例

    SKIP COND        : CHUNK (HASH)

    ハッシュジョインの詳細については,「5.5.2 ハッシュジョインとは」を参照してください。

    副問合せの処理方式のハッシュ実行については,「5.6.1 外への参照列を含まない副問合せの処理方式とは」の「(4) ハッシュ実行」,または「5.6.3 外への参照列を含む副問合せの処理方式とは」の「(3) ハッシュ実行」を参照してください。

出力例
<<Detail   >>
 
QUERY : 1
     3 INDEX SCAN(ADBUSER01.T1)
       INDEX NAME        : IDX_C1C2        ...1
        INDEX TYPE       : B-TREE          ...2
        INDEX COLUMN     : C1 ASC (IN)     ...3
        INDEX COLUMN     : C2 ASC (>)      ...3
       INDEX NAME        : RIDX_C2         ...4
        INDEX TYPE       : RANGE           ...5
        SKIP COND        : CHUNK (HASH)    ...6
        INDEX COLUMN     : C2              ...7
[説明]
  1. 使用されるインデクスの名称です。

  2. 1.のINDEX NAMEに表示されたインデクスの種別です。B-TREEが表示されているため,IDX_C1C2はB-treeインデクスです。

    1.および2.の情報から,B-treeインデクスIDX_C1C2を使用して,インデクススキャンが実行されることを示しています。

  3. B-treeインデクスIDX_C1C2についての情報です。

    C1C2:インデクス構成列

    ASC:キー値の並び順

    (IN)(>):サーチ条件の指定

  4. 使用されるインデクスの名称です。

  5. 4.のINDEX NAMEに表示されたインデクスの種別です。RANGEが表示されているため,RIDX_C2はレンジインデクスです。

  6. 使用されるレンジインデクス条件の種別です。

    CHUNK:レンジインデクスRIDX_C2がチャンクのスキップ条件で使用されることを示しています。

    (HASH):ハッシュジョインまたは副問合せの処理方式のハッシュ実行の際に,ハッシュテーブルとの突き合わせを行う条件に指定された列に対して,レンジインデクスRIDX_C2が使用されることを示しています。

  7. レンジインデクスRIDX_C2のインデクス構成列です。

メモ
  • B-treeインデクスの情報は,表の検索方式にインデクススキャンまたはキースキャンが実行される場合に表示されます。

    また,インデクス構成列が複数ある場合は,インデクス構成列ごとに情報が出力されます。この場合,CREATE INDEX文で指定したインデクス構成列の定義順に情報が出力されます。

  • テキストインデクスのインデクス情報は,表の検索方式にインデクススキャンが実行される場合に表示されます。

  • レンジインデクスの情報は,レンジインデクス条件がある場合に表示されます。

(c) 集まり導出表に関する情報

SQL文中に集まり導出表が指定されている場合,次の集まり導出表に関する情報が出力されます。

  • UNNEST DERIVED TABLE SCAN(相関名)

    SQL文中に集まり導出表が指定されていることを示しています。また,指定されている集まり導出表の相関名が表示されます。

    複数の集まり導出表を指定している場合,集まり導出表の指定順にこの情報が表示されます。

集まり導出表については,マニュアルHADB SQLリファレンス表参照を参照してください。

出力例
<<Detail   >>

QUERY : 1
     3 TABLE SCAN(ADBUSER01.T1)
       INDEX NAME        : RNG
        INDEX TYPE       : RANGE
        SKIP COND        : CHUNK AND SEGMENT
        INDEX COLUMN     : C1
       UNNEST DERIVED TABLE SCAN(DT)
[説明]

SQL文中に集まり導出表が指定されていることを示しています。指定している集まり導出表の相関名はDTであることを示しています。

(2) 表の結合方式に関する情報

表の結合方式に関する情報の出力形式の例を次に示します。

出力形式の例

<<Detail   >>
 
QUERY : 1
     3 HASH JOIN                             ←表の結合方式
       JOIN TYPE         : INNER JOIN        ←結合種別
       BUILD COLUMN      : ADBUSER01.T1.C3             ←ハッシュ検索情報
       PROBE COLUMN      : ADBUSER01.T2.C3             ←ハッシュ検索情報

(a) 表の結合方式

表の結合方式には,次のどちらかが出力されます。

  • NESTED LOOP JOIN

    表の結合処理で,ネストループジョインが実行されることを示しています。

  • HASH JOIN

    表の結合処理で,ハッシュジョインが実行されることを示しています。

    2つの表の列を比較する=条件がある場合,ハッシュジョインが実行されることがあります。また,ハッシュテーブル領域で処理できない行がある場合,作業表が作成されることがあります。

表の結合方式については,「5.5 表の結合方式」を参照してください。

出力例
<<Detail   >>
 
QUERY : 1
     3 HASH JOIN
       JOIN TYPE         : INNER JOIN
       BUILD COLUMN      : ADBUSER01.T1.C3
       PROBE COLUMN      : ADBUSER01.T2.C3
[説明]

表の結合方式で,ハッシュジョインが実行されることを示しています。

(b) 結合種別(JOIN TYPE)

JOIN TYPEには,次のどれかが出力されます。

  • CROSS JOIN

    交差結合が指定されていることを示しています。

  • INNER JOIN

    内結合が指定されていることを示しています。

  • LEFT OUTER JOIN

    LEFT OUTER JOINによる外結合が指定されていることを示しています。

  • RIGHT OUTER JOIN

    RIGHT OUTER JOINによる外結合が指定されていることを示しています。

  • FULL OUTER JOIN(LEFT)

    FULL OUTER JOINによる外結合が指定されていることを示しています。

  • FULL OUTER JOIN(RIGHT)

    FULL OUTER JOINによる外結合が指定されていることを示しています。

各結合の方式については,マニュアルHADB SQLリファレンス結合表の指定形式および規則を参照してください。

出力例
<<Detail   >>
 
QUERY : 1
     3 HASH JOIN
       JOIN TYPE         : INNER JOIN
       BUILD COLUMN      : ADBUSER01.T1.C3
       PROBE COLUMN      : ADBUSER01.T2.C3
[説明]

内結合が実行されることを示しています。

重要

INNER JOINまたはCROSS JOINは,HADBサーバによってコンマ結合に変換されてSQL文が実行されることがあります。この場合,結合種別(JOIN TYPE)は表示されません。コンマ結合については,マニュアルHADB SQLリファレンスFROM句の指定形式および規則指定形式の説明を参照してください。

出力規則を次に示します。

  • 内部導出表を作成するSQL文で内部導出表を展開する場合,ハッシュジョインの外表列および内表列の表名や相関名などに,内部導出表の展開結果が出力されます。内部導出表および内部導出表の展開規則については,マニュアルHADB SQLリファレンス内部導出表を参照してください。

(c) ハッシュ検索情報(BUILD COLUMN,PROBE COLUMN)

ハッシュジョインが実行される場合,ハッシュ検索情報には,次の情報が出力されます。

  • BUILD COLUMN

    外表の結合列の情報が出力されます。

  • PROBE COLUMN

    内表の結合列の情報が出力されます。

出力例
<<Detail   >>

QUERY : 1
     3 HASH JOIN
       BUILD COLUMN      : ADBUSER01.T1.C1(CREATE FILTER 1)    ...1
       PROBE COLUMN      : ADBUSER01.T2.C1(USE FILTER 1)       ...2
[説明]
  1. ハッシュジョインの際の,外表の結合列の列名(ADBUSER01.T1.C1)が出力されます。

  2. ハッシュジョインの際の,内表の結合列の列名(ADBUSER01.T2.C1)が出力されます。

ハッシュジョインの際にハッシュフィルタが適用される場合,下線部分にハッシュフィルタの情報が出力されます。

出力規則を次に示します。

  • BUILD COLUMNまたはPROBE COLUMNには,次のどれかの形式で列名が出力されます。このうち,相関名の出力が優先されます。列名を表示できない場合は,***が出力されます。

    • 表名.列名

    • 問合せ名.列名

    • 相関名.列名

  • ハッシュジョインの際にハッシュフィルタが適用される場合,BUILD COLUMNには,「(CREATE FILTER XXXXX)」が出力されます。「XXXXX」は,出力された列名の列値を基に作成したハッシュフィルタの番号です。

    PROBE COLUMNには,「(USE FILTER XXXXX)」が出力されます。「XXXXX」は,使用するハッシュフィルタの番号です。

  • 内部導出表を作成するSQL文で内部導出表を展開する場合,ハッシュジョインの外表列および内表列の表名や相関名などに,内部導出表の展開結果が出力されます。内部導出表および内部導出表の展開規則については,マニュアルHADB SQLリファレンス内部導出表を参照してください。

(3) 集合演算に関する情報

集合演算に関する情報には,実行される集合演算の種類が,次の形式で出力されます。

SET OPERATION TYPE:集合演算の種別

集合演算の種別には,次のどれかが出力されます。

集合演算に関する情報の出力形式の例を次に示します。

出力形式の例
<<Detail   >>
 
QUERY : 0
     3 SET OPERATION
       SET OPERATION TYPE : UNION ALL
[説明]

集合演算UNION ALLが指定されていることを示しています。

留意事項
  • SQL文中に連続して指定した集合演算中に,ALL指定とDISTINCT指定の集合演算がある場合,ALL指定の集合演算をDISTINCT指定の集合演算として扱うアクセスパス情報が表示されることがあります。このとき,「6.1.4 ツリー表示に出力される情報」の「(4) 集合演算の指定」の表示では,連続して指定された集合演算を1つにまとめて出力します。また,対応する集合演算に関する情報も1つにまとめて出力します。

  • 次に示す2つの条件を満たす場合,UNION DISTINCT指定の集合演算を,UNION ALL指定の集合演算として扱うアクセスパス情報が表示されることがあります。

    • SQL文中に連続して指定した集合演算中に,UNION指定,UNION ALL指定,UNION DISTINCT指定の集合演算がある

    • 集合演算の処理方式にハッシュ実行が適用される

    このとき,「6.1.4 ツリー表示に出力される情報」の「(4) 集合演算の指定」の表示では,連続して指定した集合演算を1つにまとめて出力します。また,対応する集合演算に関する情報も1つにまとめて出力します。

(4) 表関数導出表に関する情報

表関数導出表に関する情報には,実行されるシステム定義関数名が,次の形式で出力されます。

FUNCTION NAME : スキーマ名.システム定義関数名

システム定義関数名には,次のどちらかが出力されます。

表関数導出表に関する情報の出力形式の例を次に示します。

出力形式の例
<<Detail   >>

QUERY : 1
     3 TABLE FUNCTION DERIVED TABLE(T5)
       FUNCTION NAME : MASTER.ADB_AUDITREAD
[説明]

ADB_AUDITREAD関数が指定されていることを示しています。

(5) 副問合せに関する情報

副問合せの処理方式にハッシュ実行が適用される場合,副問合せに関する情報にハッシュ検索情報が出力されます。ハッシュ検索情報には,次の情報が出力されます。

出力例
<<Detail   >>

QUERY : 1
     3 SUBQUERY HASH
       BUILD COLUMN      : ADBUSER01.T2.C1(CREATE FILTER 1)    ...1
       PROBE COLUMN      : ADBUSER01.T1.C1(USE FILTER 1)       ...2
[説明]

上記は,外への参照列を含まない副問合せの処理方式にハッシュ実行が適用される場合の例です。

  1. 副問合せの結果の列の列名(ADBUSER01.T2.C1)が出力されます。

  2. 探索条件に指定された副問合せの結果と比較する列の列名(ADBUSER01.T1.C1)が出力されます。

ハッシュ実行の際にハッシュフィルタが適用される場合,下線部分にハッシュフィルタの情報が出力されます。

出力規則を次に示します。

(6) グループ化に関する情報

グループ化処理が複数回実行される場合に,グループ化に関する情報(グループ化集合情報)が次の形式で出力されます。

GROUPING SET : {表名|問合せ名|相関名}.1番目のグループ化のグループ化列名1
               {表名|問合せ名|相関名}.1番目のグループ化のグループ化列名2
                            :
GROUPING SET : {表名|問合せ名|相関名}.2番目のグループ化のグループ化列名1
               {表名|問合せ名|相関名}.2番目のグループ化のグループ化列名2
                            :
GROUPING SET : {表名|問合せ名|相関名}.n番目のグループ化のグループ化列名1
               {表名|問合せ名|相関名}.n番目のグループ化のグループ化列名2
                            :

グループ化に関する情報の出力形式の例を次に示します。

出力形式の例
<<Detail   >>
QUERY : 1
     5 GLOBAL HASH GROUPING
       GROUPING SET : ADBUSER01.T1.C1
                      ADBUSER01.T1.C2
                      ADBUSER01.T1.C3
       GROUPING SET : ADBUSER01.T2.C1
                      ADBUSER01.T2.C2
       GROUPING SET : ADBUSER01.T3.C1
                      ADBUSER01.T3.C3
[説明]

グループ化処理ごとにグループ化列名が出力されます。

グループ化列名を出力できない場合は,***が出力されます。

出力規則を次に示します。