17.5.5 実表検索処理情報

<この項の構成>
(1) HiRDB/シングルサーバで実表検索をする場合,又はHiRDB/パラレルサーバの実表検索(SELECT-APSLなし)で,インデクスを使用しないか,一つだけ使用した検索をする場合
(2) HiRDB/シングルサーバで実表検索,又はHiRDB/パラレルサーバで実表検索(SELECT-APSLなし)で,インデクスを二つ以上使用した検索をする場合
(3) HiRDB/パラレルサーバで実表検索(SELECT-APSLあり)をする場合
(4) HiRDB/パラレルサーバで表検索(SELECT-APSLあり)と結合処理(SELECT-APSLあり)を組み合わせた場合
(5) ビュー表検索のために作業表を作成する場合
(6) WITH句のために作業表を作成する場合
(7) FROM句に指定した導出表のために作業表を作成する場合
(8) HiRDBが内部的に作業表を作成する場合
(9) 外部サーバに対する問合せ結果を検索する場合
(10) HiRDB/シングルサーバでSELECT-APSLをする場合

(1) HiRDB/シングルサーバで実表検索をする場合,又はHiRDB/パラレルサーバの実表検索(SELECT-APSLなし)で,インデクスを使用しないか,一つだけ使用した検索をする場合

SCAN
 # Table Name  :aa...a(aa...a) bbbbbbbbbb(bb...b) (xx...x) cc...c{AA...A}
   Cost        :d(ee...eROW) {T-BB...B,I-CC...C,P-DD...D,AND-EE...E,OR-FF...F}
   RDAREA      :ff...f-CLM gg...g(hh...h) (ii...iRD/jj...jBES) [kkkk(kk...k),...] ll...l
   Rebalance   :mm...m
   Scan Type   :nn...n(oo...o)  [pp...p]
   Index Name  :qq...q rrrrrrrrrr(rr...r) (ss...s)tt...t
                     SearchCnd :uu...u[vv...v],...
                     KeyCnd    :ww...w
   RowCnd      :{HH...H}
   IfThenCnd   :{II...I}

[説明]
外部表に対する検索処理情報の場合,"RDAREA"の行を表示しません。
VALUESを指定したINSERT文を実行した場合,"Scan Type"の行を表示しません。
aa...a(aa...a):
検索対象となる表名(相関名)を表示します。
相関名を使用していない場合は,(相関名)を表示しません。検索処理が複数ある場合は,この行で区切って情報を表示します。
bbbbbbbbbb(bb...b):
検索対象となる表IDを16進数(10進数)で表示します。
cc...c{AA...A}:
実表からデータを検索した後に,作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。
ソートをしないで作業表を作成する場合は,"LIST"を表示します。ソートをして作業表を作成する場合は,"LIST(SORT)"を表示します。
d:
最適化情報収集ユティリティ(pdgetcst)による最適化情報の取得の有無を表示します。
Y :最適化情報を取得しています。
N :最適化情報を取得していません。
ee...e:
HiRDBがアクセスパスを決定するために使用する表の行数を表示します。
デフォルトの行数は,SQL最適化モードによって異なります。
  • コストベース最適化モード1,又はHiRDB/シングルサーバでコストベース最適化モード2の場合
    1000万行
  • HiRDB/パラレルサーバでコストベース最適化モード2の場合
    1000万行×表が格納されたRDエリアがあるバックエンドサーバ数
最適化情報収集ユティリティ(pdgetcst)を実行すると,HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。
ff...f:
表の分割列数を表示します。
gg...g:
表分割の種別を表示します。
NON DIVISION:非分割
KEY RANGE:キーレンジ分割(格納条件指定)
PARTITION:キーレンジ分割(境界値指定)
MULTIDIM PARTITION:マトリクス分割(境界値指定)
MULTIDIM:ハッシュ分割を含むマトリクス分割
FLEXIBLE HASH:リバランス機能を使用しないフレキシブルハッシュ分割
FIX HASH:リバランス機能を使用しないFIXハッシュ分割
RB FLEXIBLE HASH:リバランス機能を使用するフレキシブルハッシュ分割
RB FIX HASH:リバランス機能を使用するFIXハッシュ分割
hh...h:
ハッシュ分割時に,ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また,ハッシュ分割を含むマトリクス分割の場合も表示しません。
ii...iRD/jj...jBES
ii...iには表の分割数(RDエリア数)が,jj...jには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。
非横分割表の場合,ii...iは1となります。また,HiRDB/シングルサーバの場合,"/jj...jBES"を表示しません。
kkkk(kk...k),...:
表格納用RDエリアのRDエリアIDを16進数(10進数)で表示します。
表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は,pddblsコマンドで調べることができます。
ll...l:
ALL
表を定義しているすべてのRDエリアを検索する場合に表示します。
RESTRICTED
表を定義しているRDエリアの内,探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。
mm...m:
リバランス機能を使用する表の場合,リバランス状態を表示します。
リバランス機能を使用しない表の場合,この行を表示しません。リバランス機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
NORMAL
通常の状態,又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ(pdrbal)を実行していない状態です。
ON REBALANCE
表がリバランス中(リバランス開始からリバランス終了まで)の状態です。
nn...n:
検索方法を表示します。
検索方法については,「17.5.7 検索方法の種類」を参照してください。
oo...o:
Group by ModeがIMPLICIT MIN-MAX INDEXの場合に,インデクスの検索方法が示されます。
MIN:
インデクスの検索する範囲を昇順にサーチして,探索条件を満たす行があった時点でインデクスの検索を打ち切ります。
MAX:
インデクスの検索する範囲を降順にサーチして,探索条件を満たす行があった時点でインデクスの検索を打ち切ります。
MIN,MAX:
まず,MINの値を求めるためにインデクスを昇順にサーチして,次にMAXの値を求めるためにインデクスを降順にサーチします。
集合関数にMINだけ,又はMAXだけを指定した場合に比べて,検索時間は約2倍になります。
MINとMAXでは,インデクスのサーチする順序が逆になるため,サーチ条件のインデクスのサーチ範囲も逆になりますが,MINとMAXを混在している場合にはMIN用のサーチ範囲だけ表示します。
pp...p:
使用インデクスのSQL最適化指定を指定した場合,その指定が有効か無効かを表示します。SQL最適化指定については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
AS SPECIFIED:
有効です。
SPECIFICATION IGNORED:
無効です。
PARTIALLY IGNORED:
一部の指定は有効ですが,それ以外の指定は無効です。
qq...q:
検索で使用するインデクス名を表示します。
インデクスを使用しないで検索する場合には,この行を表示しません。
rrrrrrrrrr(rr...r):
検索で使用するインデクスIDを16進数(10進数)で表示します。
ss...s:
インデクス属性を組み合わせた情報を表示します。
数字:インデクス構成列数
G:プラグインインデクス
U:ユニークキーインデクス
C:クラスタキーインデクス
D:分割キーインデクス又はプラグインインデクス
d:サーバ内分割された非分割キーインデクス
E:除外キー値を指定したインデクス
M:繰返し列を含むインデクス
P:主キーインデクス
tt...t:
[プラグインインデクス及び部分構造インデクス以外のインデクスの場合]
インデクス構成列情報を列ごとにコンマ(,)で区切って,全体を( )で囲んで表示します。
インデクス構成列情報は,構成列のサーチ方向とインデクス構成列名で表示します。
構成列のサーチ方向は,構成列を昇順にサーチする場合には+,降順にサーチする場合には-を表示します。

例) 第1構成列(C1)は昇順,第2構成列(C2)は降順にサーチする場合
   (+C1,-C2)

[部分構造インデクスの場合]
インデクスを構成するインデクス構成情報を,全体を( )で囲んで表示します。インデクス構成情報全体には次の情報を表示します。
  1. XML型が定義された列の列名
  2. 部分構造パスのサーチ方向
    部分構造パスのサーチ方向は,部分構造パスを昇順にサーチする場合には+,降順にサーチする場合には-を表示します。
  3. 部分構造インデクスを構成する部分構造パス
  4. 部分構造インデクスを構成する部分構造パスの数
  5. CREATE INDEXへのUSING UNIQUE TAGの指定有無
    USING UNIQUE TAGの指定がある場合はUを表示します。
これらの情報は,2.~5.の全体を[ ]で囲んで表示します。その中でも4.と5.は( )で囲んで表示します。

例1) XML型の列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言の指定なし)
   (C1[(1U)+/A/B/C])

例2) XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言に指定した接頭辞を使用)
   (C1[(1U)+declare namespace aaa
    ="http://www.w3.org/XML/1998/namespace";/A/B/aaa:C])

例3) XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(HiRDBで定義されている接頭辞(xml)を使用)
   (C1[(1U)+/A/B/xml:C])

[プラグインインデクスの場合]
プラグイン提供関数の種別によって,詳細な情報を表示します。プラグイン提供関数の種別については,「17.5.11 プラグイン提供関数の種別」を参照してください。関数呼出しの第2引数以降は表示しません。

例1) 種別がSCAN TYPEとなるプラグイン提供関数(WITHIN)で第1構成列がC1の場合
   WITHIN(C1,...)[SCAN TYPE]

例2) 種別がINDEX SCAN TYPEとなるプラグイン提供関数(CONTAINS)で第1構成列がC1の場合
   CONTAINS(C1,...)[INDEX SCAN TYPE]

例3) 種別がFULL SCAN TYPEとなるプラグイン提供関数(SEARCHFEATUREDATA)で第1構成列がC1の場合
   SEARCHFEATUREDATA(C1,...)[FULL SCAN TYPE]

uu...u[vv...v],...:
サーチ条件の種類,サーチ条件の絞り込み範囲を表示します。サーチ条件については,「17.5.12 サーチ条件」を参照してください。
インデクスを使用した検索でサーチ条件がない場合,インデクスの全範囲検索をするときは"NONE(FULL SCAN)"を表示します。Group by modeがIMPLICIT MIN-MAX INDEXの場合,"NONE"を表示します(探索条件が真になった時点で検索を打ち切り,インデクスの全範囲検索になるとは限らないため,"(FULL SCAN)"は表示しません)。
サーチ条件によって,絞り込み範囲の数が0個となる場合,又は1個以上となる場合があります。
インデクスの第2構成列以降にサーチ条件があるが,第1構成列にはサーチ条件がない場合には,サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。
ww...w:
キー条件を表示します。キー条件については,「17.5.13 キー条件」を参照してください。
キー条件がない場合は,この行を表示しません。
xx...x:
共用表が検索対象の場合,"SHARED"を表示します。共用表でない場合,表示しません。

(2) HiRDB/シングルサーバで実表検索,又はHiRDB/パラレルサーバで実表検索(SELECT-APSLなし)で,インデクスを二つ以上使用した検索をする場合

SCAN
 # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (CC...C) cc...c{DD...DD}
   Cost         :d (ee...eROW)  {T-EE...E,I-FF...F,P-GG...G,AND-HH...H,OR-II...I}
   RDAREA       :ff...f-CLM gg...g(hh...h) (ii...iRD/jj...jBES) [kkkk(kk...k),...] LL...L
   Rebalance    :mm...m
   Scan Type    :nn...n  [oo...o]
   Index Name   :pp...p = qq...q rrrrrrrrrr(rr...r) (ss...s) tt...t BB...B{KK...K}
                        Scan Type :uu...u
                        SearchCnd :vv...v[ww...w],...
                        KeyCnd    :xx...x
                        RowCnd    :{HH...H}
                        IfThenCnd :{NN...N}
                 pp...p = qq...q rrrrrrrrrr(rr...r) (ss...s) tt...t BB...B{KK...K}
                        Scan Type :uu...u
                        SearchCnd :vv...v[ww...w],...
                        KeyCnd    :xx...x
                        RowCnd    :{HH...H}
                        IfThenCnd :{NN...N}
                 pp...p = [yy...y zz...z{JJ...J}] AA...A[yy...y zz...z{JJ...J}]
   RowCnd       :{MM...M}
   IfThenCnd    :{OO...O}

[説明]
外部表に対する検索処理情報の場合,"RDAREA"の行を表示しません。
aa...a(aa...a):
検索対象となる表名(相関名)を表示します。
相関名を使用していない場合,(相関名)を表示しません。検索処理が複数ある場合は,この行で区切って情報を表示します。
bbbbbbbbbb(bb...b):
検索対象となる表IDを16進数(10進数)で表示します。
cc...c{DD...D}:
実表からデータを検索した後に,作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。
ソートをしないで作業表を作成する場合は,"LIST"を表示します。ソートをして作業表を作成する場合は,"LIST(SORT)"を表示します。
d:
最適化情報収集ユティリティ(pdgetcst)による最適化情報の取得の有無を表示します。
Y:最適化情報を取得しています。
N:最適化情報を取得していません。
ee...e:
HiRDBがアクセスパスを決定するために使用する表の行数を表示します。
デフォルトの行数は,SQL最適化モードによって異なります。
  • コストベース最適化モード1,又はHiRDB/シングルサーバでコストベース最適化モード2の場合
    1000万行
  • HiRDB/パラレルサーバでコストベース最適化モード2の場合
    1000万行×表が格納されたRDエリアがあるバックエンドサーバ数
最適化情報収集ユティリティ(pdgetcst)を実行すると,HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。
ff...f:
表の分割列数を表示します。
gg...g:
表分割の種別を表示します。
NON DIVISION:非分割
KEY RANGE:キーレンジ分割(格納条件指定)
PARTITION:キーレンジ分割(境界値指定)
MULTIDIM PARTITION:マトリクス分割(境界値指定)
MULTIDIM:ハッシュ分割を含むマトリクス分割
FLEXIBLE HASH:リバランス機能を使用しないフレキシブルハッシュ分割
FIX HASH:リバランス機能を使用しないFIXハッシュ分割
RB FLEXIBLE HASH:リバランス機能を使用するフレキシブルハッシュ分割
RB FIX HASH:リバランス機能を使用するFIXハッシュ分割
hh...h:
ハッシュ分割時にハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また,ハッシュ分割を含むマトリクス分割の場合も表示しません。
ii...iRD/jj...jBES
ii...iには表の分割数(RDエリア数)が,jj...jには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。
非横分割表の場合,ii...iは1となります。また,HiRDB/シングルサーバの場合,"/jj...jBES"を表示しません。
kkkk(kk...k),...:
表格納用RDエリアのRDエリアIDを16進数(10進数)で表示します。
表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は,pddblsコマンドで調べられます。
ll...l:
ALL:
表を定義しているすべてのRDエリアを検索する場合に表示します。
RESTRICTED:
表を定義しているRDエリアのうち,探索条件によって該当するデータがある可能性のあるRDエリアだけ検索する場合に表示します。
mm...m:
リバランス機能を使用する表の場合,リバランス状態を表示します。
リバランス機能を使用しない表の場合,この行を表示しません。リバランス機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
NORMAL
通常の状態,又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ(pdrbal)を実行していない状態です。
ON REBALANCE
表がリバランス中(リバランス開始からリバランス終了まで)の状態です。
nn...n:
検索方法を表示します。
検索方法については,「17.5.7 検索方法の種類」を参照してください。
oo...o:
使用インデクスのSQL最適化指定を指定した場合,その指定が有効か無効かを表示します。SQL最適化指定については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
AS SPECIFIED:
有効です。
SPECIFICATION IGNORED:
無効です。
PARTIALLY IGNORED:
一部の指定は有効ですが,それ以外の指定は無効です。
pp...p:
AND PLURAL INDEXES SCANのときに作成する作業表番号を,"LID(作業表番号)"で表示します。
qq...q:
AND PLURAL INDEXES SCAN,又はOR PLURAL INDEXES SCANの場合に,作業表を作成するために使用するインデクス名を複数行表示します。ただし,インデクスを使用しないで作成する作業表については,インデクス名に"(NO USE)"を表示します。
rrrrrrrrrr(rr...r):
検索で使用するインデクスIDを16進数(10進数)で表示します。
ss...s:
次のインデクス属性を組み合わせた情報を表示します。
数字:インデクス構成列数
G:プラグインインデクス
U:ユニークキーインデクス
C:クラスタキーインデクス
D:分割キーインデクス又はプラグインインデクス
d:サーバ内分割された非分割キーインデクス
E:除外キー値を指定したインデクス
M:繰返し列を含むインデクス
P:主キーインデクス
tt...t:
[プラグインインデクス及び部分構造インデクス以外のインデクスの場合]
インデクス構成列情報を列ごとにコンマ(,)で区切って,全体を( )で囲んで表示します。
インデクス構成列情報は,構成列のサーチ方向とインデクス構成列名で表示します。
構成列のサーチ方向は,構成列を昇順にサーチする場合には+,降順にサーチする場合には-を表示します。

例) 第1構成列(C1)は昇順,第2構成列(C2)は降順にサーチする場合
   (+C1,-C2)

[部分構造インデクスの場合]
インデクスを構成するインデクス構成情報を,全体を( )で囲んで表示します。インデクス構成情報全体には次の情報を表示します。
  1. XML型が定義された列の列名
  2. 部分構造パスのサーチ方向
    部分構造パスのサーチ方向は,部分構造パスを昇順にサーチする場合には+,降順にサーチする場合には-を表示します。
  3. 部分構造インデクスを構成する部分構造パス
  4. 部分構造インデクスを構成する部分構造パスの数
  5. CREATE INDEXへのUSING UNIQUE TAGの指定有無
    USING UNIQUE TAGの指定がある場合はUを表示します。
これらの情報は,2.~5.の全体を[ ]で囲んで表示します。その中でも4.と5.は( )で囲んで表示します。

例1) XML型の列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言の指定なし)
   (C1[(1U)+/A/B/C])

例2) XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言に指定した接頭辞を使用)
   (C1[(1U)+declare namespace aaa
    ="http://www.w3.org/XML/1998/namespace";/A/B/aaa:C])

例3) XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(HiRDBで定義されている接頭辞(xml)を使用)
   (C1[(1U)+/A/B/xml:C])

[プラグインインデクスの場合]
プラグイン提供関数の種別によって,詳細な情報を表示します。プラグイン提供関数の種別については,「17.5.11 プラグイン提供関数の種別」を参照してください。関数呼出しの第2引数以降は表示しません。

例1) 種別がSCAN TYPEとなるプラグイン提供関数(WITHIN)で第1構成列がC1の場合
   WITHIN(C1,...)[SCAN TYPE]

例2) 種別がINDEX SCAN TYPEとなるプラグイン提供関数(CONTAINS)で第1構成列がC1の場合
   CONTAINS(C1,...)[INDEX SCAN TYPE]

例3) 種別がFULL SCAN TYPEとなるプラグイン提供関数(SEARCHFEATUREDATA)で第1構成列がC1の場合
   SEARCHFEATUREDATA(C1,...)[FULL SCAN TYPE]

uu...u:
それぞれの作業表を作成するための検索方法を表示します。
検索方法については,「17.5.7 検索方法の種類」を参照してください。
vv...v [ww...w],...:
サーチ条件の種類,及びサーチ条件の絞り込み範囲を表示します。サーチ条件については,「17.5.12 サーチ条件」を参照してください。
インデクスを使用した検索でサーチ条件がない場合,サーチ条件の種類には"NONE(FULL SCAN)"を表示します。
サーチ条件によって,絞り込み範囲の数が0個となる場合,又は1個以上となる場合があります。
インデクスの第2構成列以降にサーチ条件があるが,第1構成列にはサーチ条件がない場合には,サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。
xx...x:
キー条件を表示します。キー条件については,「17.5.13 キー条件」を参照してください。
キー条件がない場合は,この行を表示しません。
pp...p = [yy...y zz...z{JJ...J}] AA...A [yy...y zz...z{JJ...J}] :
AND PLURAL INDEXES SCAN時の作業表の作成順序を表示します。インデクスを三つ以上使用して検索する場合には,複数行に分けて表示します。
pp...pには,作業表番号が"LID(作業表番号)"を表示します。
AA...Aには,作業表間の演算の種別{"AND","OR",又は"ANDNOT"}を表示します。
yy...yには,演算をするための入力となる作業表を"LID(作業表番号)"で表示します。
zz...zには,ソートをしないで作業表を作成する場合は"LIST"が,ソートを使用して作業表を作成する場合は"LIST(SORT)"を表示します。
例:インデクスIX1(C1)及びIX2(C2)が定義されている場合に,次の条件のSQLを実行したものとします。

where C1='A'                  ←作業表番号:1
 or C2=between 'a' and 'z'   ←作業表番号:2

ScanTypeがAND PLURAL INDEXES SCANの場合を例にすると,出力結果は次のようになります。

      :
   Scan Type    :AND PLURAL INDEXES SCAN
   Index Name   :LID(1)=IX1 (1) (+C1)
                        Scan Type :INDEX SCAN
                        SearchCnd :AT['A']
                 LID(2)=IX2 (1) (+C2)
                        Scan Type :INDEX SCAN
                        SearchCnd :RANGE(CS-CE) ['a','z']
                 LID(3)=[LID(1) LIST(SORT){...}] OR [LID(2) LIST(SORT){...}]

BB...B{KK...K}:
AND PLURAL INDEXES SCANのための作業表とは別に,表の検索後に作業表を作成する場合に情報を表示します。
ソートを伴わないで作業表を作成する場合,II...Iに"LIST"を表示します。作業表を作成する場合にソートをするときは,II...Iに"LIST(SORT)"を表示します。作業表を作成しない場合,情報を表示しません。
CC...C:
共用表が検索対象の場合,"SHARED"を表示します。共用表でない場合,表示しません。

(3) HiRDB/パラレルサーバで実表検索(SELECT-APSLあり)をする場合

SCAN
 # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (zz...z)
   Cost         :c (dd...dROW) {T-AA...A,I-BB...B,P-CC...C,AND-DD...D,OR-EE...E}
   RDAREA       :ee...e-CLM ff...f(gg...g) (hh...hRD/ii...iBES) [jjjj(jj...j),...] kk...k
   Rebalance    :ll...l
   Scan Type    :SELECT-APSL
         Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
         Column ID    :oooooo(oo...o)
         Predicate    :pp...p
         Threshold    :qq...q
      [1] rr...r  ................................................1
           Index Name :ss...s tttttttttt(tt...t) (uu...u) vv...v
                          SearchCnd :ww...w[xx...x],...
                          KeyCnd    :yy...y
                          RowCnd    :{FF...F}
      [2] rr...r  ................................................2
           Index Name :ss...s tttttttttt(tt...t) (uu...u) vv...v
                          SearchCnd :ww...w[xx...x],...
                          KeyCnd    :yy...y
                          RowCnd    :{FF...F}
   IfThenCnd    :{GG...G}

[説明]
1は実表の検索方法の第一候補,2は実表の検索方法の第二候補を示しています。検索方法については,「17.5.7 検索方法の種類」を参照してください。
外部表に対する検索処理情報の場合,"RDAREA"の行を表示しません。
aa...a(aa...a):
検索対象となる表名(相関名)を表示します。
相関名を使用していない場合は,(相関名)を表示しません。検索処理が複数ある場合は,この行で区切って情報を表示します。
bbbbbbbbbb(bb...b):
検索対象となる表IDを16進数(10進数)で表示します。
c  :
最適化情報収集ユティリティ(pdgetcst)による最適化情報の取得の有無を表示します。
Y :最適化情報を取得しています。
N :最適化情報を取得していません。
dd...d:
HiRDBがアクセスパスを決定するために使用する表の行数を表示します。
デフォルトの行数は,SQL最適化モードによって異なります。
  • コストベース最適化モード1,又はHiRDB/シングルサーバでコストベース最適化モード2の場合
    1000万行
  • HiRDB/パラレルサーバでコストベース最適化モード2の場合
    1000万行×表が格納されたRDエリアがあるバックエンドサーバ数
最適化情報収集ユティリティ(pdgetcst)を実行すると,HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。
ee...e:
表の分割列数を表示します。
ff...f:
表分割の種別を表示します。
NON DIVISION:非分割
KEY RANGE:キーレンジ分割(格納条件指定)
PARTITION:キーレンジ分割(境界値指定)
MULTIDIM PARTITION:マトリクス分割(境界値指定)
MULTIDIM:ハッシュ分割を含むマトリクス分割
FLEXIBLE HASH:リバランス機能を使用しないフレキシブルハッシュ分割
FIX HASH:リバランス機能を使用しないFIXハッシュ分割
RB FLEXIBLE HASH:リバランス機能を使用するフレキシブルハッシュ分割
RB FIX HASH:リバランス機能を使用するFIXハッシュ分割
gg...g:
ハッシュ分割時に,ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また,ハッシュ分割を含むマトリクス分割の場合も表示しません。
hh...hRD/ii...iBES
hh...hには表の分割数(RDエリア数)が,ii...iには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。
非横分割表の場合,hh...hは1となります。また,HiRDB/シングルサーバの場合,"/ii...iBES"を表示しません。
jjjj(jj...j),...:
表格納用RDエリアのRDエリアIDを16進数(10進数)で表示します。
表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は,pddblsコマンドで調べることができます。
kk...k:
ALL
表を定義しているすべてのRDエリアを検索する場合に表示します。
RESTRICTED
表を定義しているRDエリアの内,探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。
ll...l:
リバランス機能を使用する表の場合,リバランス状態を表示します。
リバランス機能を使用しない表の場合,この行を表示しません。リバランス機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
NORMAL
通常の状態,又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ(pdrbal)を実行していない状態です。
ON REBARANCE
表がリバランス中(リバランス開始からリバランス終了まで)の状態です。
mm...m(mm...m):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表名(相関名)を表示します。
nnnnnnnnnn(nn...n):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを,16進数(10進数)で表示します。
oooooo(oo...o):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列IDを,16進数(10進数)で表示します。
pp...p:
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる条件の述語を表示します。
qq...q:
SQLオブジェクトを選択するための基準値となるヒット率を表示します。
実行時に算出したヒット率がこの値より小さい場合は,第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は,第二候補のSQLオブジェクトを使用します。
rr...r:
検索方法を表示します。
検索方法については,「17.5.7 検索方法の種類」を参照してください。
ss...s:
検索で使用するインデクス名を表示します。
インデクスを使用しない検索の場合,この行を表示しません。
tttttttttt(tt...t):
検索で使用するインデクスIDを16進数(10進数)で表示します。
uu...u:
インデクス属性を組み合わせた情報を表示します。
数字:インデクス構成列数
G:プラグインインデクス
U:ユニークキーインデクス
C:クラスタキーインデクス
D:分割キーインデクス又はプラグインインデクス
d:サーバ内分割された非分割キーインデクス
E:除外キー値を指定したインデクス
M:繰返し列を含むインデクス
P:主キーインデクス
vv...v:
インデクス構成列情報を列ごとにコンマ(,)で区切って,全体を( )で囲んで表示します。
インデクス構成列情報は,構成列のサーチ方向とインデクス構成列名で表示します。
構成列のサーチ方向は,構成列を昇順にサーチする場合には+,降順にサーチする場合には-を表示します。

例) 第1構成列(C1)は昇順,第2構成列(C2)は降順にサーチする場合
   (+C1,-C2)

ww...w [xx...x],...:
サーチ条件の種類,及びサーチ条件の絞り込み範囲を表示します。サーチ条件については,「17.5.12 サーチ条件」を参照してください。
インデクスを使用した検索でサーチ条件がない場合,サーチ条件の種類には"NONE(FULL SCAN)"を表示します。
サーチ条件によって,絞り込み範囲の数が0個となる場合,1個以上となる場合があります。
インデクスの第2構成列以降にサーチ条件があるが,第1構成列にはサーチ条件がない場合には,サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。
yy...y:
キー条件を表示します。キー条件については,「17.5.13 キー条件」を参照してください。
キー条件がない場合は,この行を表示しません。
zz...z:
共用表が検索対象の場合,"SHARED"を表示します。共用表でない場合,表示しません。

(4) HiRDB/パラレルサーバで表検索(SELECT-APSLあり)と結合処理(SELECT-APSLあり)を組み合わせた場合

SCAN
 # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (AA...A)
   Cost         :c (dd...dROW) {T-BB...B,I-CC...C,P-DD...D,AND-EE...E,OR-FF...F}
   RDAREA       :ee...e-CLM ff...f(gg...g) (hh...hRD/ii...iBES) [jjjj(jj...j),...] kk...k
   Rebalance    :ll...l
   Scan Type    :SELECT-APSL
         Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
         Column ID    :oooooo(oo...o)
         Predicate    :pp...p
         Threshold    :qq...q
      [1] rr...r (ss...s)  ........................................1
           Index Name :tt...t uuuuuuuuuu(uu...u) (vv...v) ww...w
                          SearchCnd :xx...x[yy...y],...
                          KeyCnd    :zz...z
                          RowCnd    :{GG...G}
                          IfThenCnd :{HH...H}
      [2] SELECT-APSL (ss...s)  ...................................2
            Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
            Column ID    :oooooo(oo...o)
            Predicate    :pp...p
            Threshold    :qq...q
         [1] rr...r  ..............................................3
           Index Name :tt...t uuuuuuuuuu(uu...u) (vv...v) ww...w
                          SearchCnd :xx...x[yy...y],...
                          KeyCnd    :zz...z
           RowCnd     :{GG...G}
           IfThenCnd  :{HH...H}
         [2] rr...r  ..............................................4
           RowCnd     :{GG...G}
           IfThenCnd  :{HH...H}

[説明]
外部表に対する検索処理情報の場合,"RDAREA"の行を表示しません。
1は,結合方法で第一候補が選ばれたときの表の検索方法です。
2は,結合方法で第二候補が選ばれたときの表の検索方法(この場合SELECT-APSLとなります)です。
3は,結合方法で第二候補が選ばれたときの,表の検索方法の第一候補です。
4は,結合方法で第二候補が選ばれたときの,表の検索方法の第二候補です。
aa...a(aa...a):
検索対象となる表名(相関名)を表示します。
相関名を使用していない場合は,(相関名)を表示しません。検索処理が複数ある場合は,この行で区切って情報を表示します。
bbbbbbbbbb(bb...b):
検索対象となる表IDを16進数(10進数)で表示します。
c  :
最適化情報収集ユティリティ(pdgetcst)による最適化情報の取得の有無を表示します。
Y :最適化情報を取得しています。
N :最適化情報を取得していません。
dd...d:
HiRDBがアクセスパスを決定するために使用する表の行数を表示します。
デフォルトの行数は,SQL最適化モードによって異なります。
  • コストベース最適化モード1,又はHiRDB/シングルサーバでコストベース最適化モード2の場合
    1000万行
  • HiRDB/パラレルサーバでコストベース最適化モード2の場合
    1000万行×表が格納されたRDエリアがあるバックエンドサーバ数
最適化情報収集ユティリティ(pdgetcst)を実行すると,HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。
ee...e:
表の分割列数を表示します。
ff...f:
表分割の種別を表示します。
NON DIVISION:非分割
KEY RANGE:キーレンジ分割(格納条件指定)
PARTITION:キーレンジ分割(境界値指定)
MULTIDIM PARTITION:マトリクス分割(境界値指定)
MULTIDIM:ハッシュ分割を含むマトリクス分割
FLEXIBLE HASH:リバランス機能を使用しないフレキシブルハッシュ分割
FIX HASH:リバランス機能を使用しないFIXハッシュ分割
RB FLEXIBLE HASH:リバランス機能を使用するフレキシブルハッシュ分割
RB FIX HASH:リバランス機能を使用するFIXハッシュ分割
gg...g:
ハッシュ分割時に,ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また,ハッシュ分割を含むマトリクス分割の場合も表示しません。
hh...hRD/ii...iBES
hh...hには表の分割数(RDエリア数)が,ii...iには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。
非横分割表の場合,hh...hは1となります。また,HiRDB/シングルサーバの場合,"/ii...iBES"を表示しません。
jjjj(jj...j),...:
表格納用RDエリアのRDエリアIDを16進数(10進数)で表示します。
表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は,pddblsコマンドで調べることができます。
kk...k:
ALL
表を定義しているすべてのRDエリアを検索する場合に表示します。
RESTRICTED
表を定義しているRDエリアの内,探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。
ll...l:
リバランス機能を使用する表の場合,リバランス状態を表示します。
リバランス機能を使用しない表の場合,この行を表示しません。リバランス機能については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
NORMAL
通常の状態,又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ(pdrbal)を実行していない状態です。
ON REBALANCE:
表がリバランス中(リバランス開始からリバランス終了まで)の状態です。
mm...m(mm...m):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表名(相関名)を表示します。
nnnnnnnnnn(nn...n):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを16進数(10進数)で表示します。
oooooo(oo...o):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列IDを16進数(10進数)で表示します。
pp...p:
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる条件の述語を表示します。
qq...q:
SQLオブジェクトを選択するための基準値となるヒット率を表示します。
実行時に算出したヒット率がこの値より小さい場合は,第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は,第二候補のSQLオブジェクトを使用します。
rr...r:
検索方法を表示します。
検索方法については,「17.5.7 検索方法の種類」を参照してください。
ss...s:
検索処理に対応する結合方法を表示します。
結合方法については,「17.5.6 結合方法の種類」を参照してください。
tt...t:
検索で使用するインデクス名を表示します。
インデクスを使用しない検索の場合,この行を表示しません。
uuuuuuuuuu(uu...u):
検索で使用するインデクスIDを16進数(10進数)で表示します。
vv...v:
インデクス属性を組み合わせた情報を表示します。
数字:インデクス構成列数
G:プラグインインデクス
U:ユニークキーインデクス
C:クラスタキーインデクス
D:分割キーインデクス
E:除外キー値を指定したインデクス
M:繰返し列を含むインデクス
P:主キーインデクス
ww...w:
インデクス構成列情報を列ごとにコンマ(,)で区切って,全体を( )で囲んで表示します。
インデクス構成列情報は,構成列のサーチ方向とインデクス構成列名で表示します。
構成列のサーチ方向は,構成列を昇順にサーチする場合には+,降順にサーチする場合には-を表示します。

例) 第1構成列(C1)は昇順,第2構成列(C2)は降順にサーチする場合
   (+C1,-C2)

xx...x[yy...y],...:
サーチ条件の種類,及びサーチ条件の絞り込み範囲を表示します。サーチ条件については,「17.5.12 サーチ条件」を参照してください。
インデクスを使用した検索でサーチ条件がない場合,サーチ条件の種類には"NONE(FULL SCAN)"を表示します。
サーチ条件によって,絞り込み範囲の数が0個となる場合,1個以上となる場合があります。
インデクスの第2構成列以降にサーチ条件があるが,第1構成列にはサーチ条件がない場合には,サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。
zz...z:
キー条件を表示します。キー条件については,「17.5.13 キー条件」を参照してください。
キー条件がない場合は,この行を表示しません。
AA...A:
共用表が検索対象の場合,"SHARED"を表示します。共用表でない場合,表示しません。

(5) ビュー表検索のために作業表を作成する場合

SCAN
 # Table Name :aa...a(aa...a) bbbbbbbbbb(bb...b)  {AA...A}
   Cost       :(cc...cROW)  {T-BB...B}
   Scan Type  :dd...d
   RowCnd     :{CC...C}
   IfThenCnd  :{DD...D}

[説明]
aa...a(aa...a):
ビュー表名(相関名)を表示します。
相関名を使用していない場合は,(相関名)を表示しません。
bbbbbbbbbb(bb...b):
ビュー表IDを16進数(10進数)で表示します。
cc...c:
HiRDBがアクセスパスを決定するために使用する,表の行数を表示します。
dd...d:
"LIST SCAN"を表示します。
"LIST SCAN"については,「17.5.7 検索方法の種類」を参照してください。

(6) WITH句のために作業表を作成する場合

SCAN
 # Table Name :aa...a(aa...a)  {AA...A}
   Cost       :(bb...bROW)  {T-BB...B}
   Scan Type  :cc...c
   RowCnd     :{CC...C}
   IfThenCnd  :{DD...D}

[説明]
aa...a(aa...a):
WITH句問合せ名(相関名)を表示します。
相関名を使用していない場合は,(相関名)を表示しません。
bb...b:
HiRDBがアクセスパスを決定するために使用する,表の行数を表示します。
cc...c:
"LIST SCAN"を表示します。
"LIST SCAN"については,「17.5.7 検索方法の種類」を参照してください。

(7) FROM句に指定した導出表のために作業表を作成する場合

SCAN
 # Table Name :aa...a(aa...a) {AA...A}
   Cost       :(bb...bROW)  {T-BB...B}
   Scan Type  :cc...c
   RowCnd     :{CC...C}
   IfThenCnd  :{DD...D}

[説明]
aa...a(aa...a):
"(NO NAME)"又は"(NO NAME)(相関名)"を表示します。
bb...b:
HiRDBがアクセスパスを決定するために使用する,表の行数を表示します。
cc...c:
"LIST SCAN"を表示します。
"LIST SCAN"については,「17.5.7 検索方法の種類」を参照してください。

(8) HiRDBが内部的に作業表を作成する場合

SCAN
 # Table Name :aa...a  {AA...A}
   Cost       :(bb...bROW)  {T-BB...B}
   Scan Type  :cc...c
   RowCnd     :{CC...C}
   IfThenCnd  :{DD...D}

[説明]
aa...a:
HiRDBが内部的に作成する作業表名を表示します。
HiRDBが内部的に作成する作業表名は,"(DUMMY 作業表番号)"となります。作業表番号は3けたの整数です。
bb...b:
HiRDBがアクセスパスを決定するために使用する,表の行数を表示します。
cc...c:
"LIST SCAN"を表示します。
"LIST SCAN"については,「17.5.7 検索方法の種類」を参照してください。

(9) 外部サーバに対する問合せ結果を検索する場合

SCAN
 # Table Name :aa...a
   Cost       :(bb...bROW){AA...A}
   Scan Type  :cc...c
   RowCnd     :{BB...B}
   IfThenCnd  :{DD...D}

[説明]
aa...a:
自HiRDBが外部サーバから検索した結果を受け取るために,内部的に作成する表識別子の名称"(FOREIGNSQL 表番号)"を表示します。
表番号は3けたの整数で,1から順に割り当てられます。
bb...b:
外部サーバからの検索結果行数の予測値を表示します。自HiRDBでのアクセスパスを決定するために使用します。
外部サーバからの検索結果行数の予測値については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
cc...c:
外部サーバに対する問合せ結果の検索方法を表示します。
外部サーバに対する問合せ結果の検索方法については,「17.5.7 検索方法の種類」を参照してください。

(10) HiRDB/シングルサーバでSELECT-APSLをする場合

--- SELECT-APSL ---
  Table Name    :aa...a(aa...a) bbbbbbbbbb(bb...b)
  Column ID     :cccccc(cc...c)
  Predicate     :dd...d
  Threshold     :ee...e
[1]  ......................................................1
Section No     :ff...f
   :
[2]  ......................................................2
Section No     :ff...f
   :

[説明]

1はアクセスパスの第一候補,2はアクセスパスの第二候補を示しています。アクセスパスについては,「17.5.9 アクセスパスの種類」を参照してください。

HiRDB/シングルサーバの場合,シングルサーバは結合処理及び検索処理ごとにSELECT-APSLをしないで,SQL文全体のSQLオブジェクトを二つ作成します。

aa...a(aa...a):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表名(相関名)を表示します。
bbbbbbbbbb(bb...b):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを16進数(10進数)で表示します。
cccccc(cc...c):
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる述語で使用する列IDを16進数(10進数)で表示します。
dd...d:
SQLオブジェクトを選択するための,SQL実行時ヒット率の算出対象となる条件の述語を表示します。
ee...e:
SQLオブジェクトを選択するための基準値となるヒット率を表示します。
実行時に算出したヒット率がこの値より小さい場合は,第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は,第二候補のSQLオブジェクトを使用します。
ff...f:
セクション番号を表示します(SQLごとに番号が付きます)。
動的SQLの場合は,すべて1となります。