17.5.1 集合演算処理情報
----- QUERY EXPRESSION BODY ID : aa...a ----- Query Exp Type : bb...b cc...c(cc...c) dd...d{AA...A} Sub Query Type : ee...e{BB...B} [ff...f] Transfer Type : gg...g-CLM hh...h Order by Mode : ii...i FLT Server : jj...j SetOpe Process : kk...k = [ll...l mm...m{CC...C}] nn...n [ll...l mm...m{CC...C}] :
[説明]
- aa...a:
-
問合せ式本体IDを表示します。
集合演算を含む問合せ式本体ごとに番号を付けます。コンパイルしたSQLが複数の問合せ式本体で構成される場合,この行で情報を区切ります。
- bb...b:
-
問合せ式の種類を表示します。
- QUERY:
-
問合せ
- DERIVED TABLE:
-
FROM句に問合せ式本体を指定した場合の導出表の問合せ
- SUBQUERY:
-
副問合せ
- WITH:
-
WITH句問合せ
- VIEW:
-
ビュー定義の問合せ
- cc...c(cc...c):
-
問合せ式本体の種類によって,次の情報を表示します。
-
WITH句の問合せ式本体の場合,WITH句問合せ名(相関名)
-
ビュー定義の問合せ式本体の場合,ビュー表名(相関名)
-
FROM句に指定した導出表中の問合せ式本体の場合,"(NO NAME)",又は"(NO NAME)(相関名)"
-
- dd...d{AA...A}:
-
集合演算結果に対して作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。
ソートをしないで作業表を作成する場合は,"LIST"を表示します。
ソートをして作業表を作成する場合は,"LIST(SORT)"を表示します。
- ee...e:
-
副問合せの実行方式を表示します。副問合せの実行方式については,マニュアル「HiRDB UAP開発ガイド」の「外への参照のない副問合せの実行方式」及び「外への参照のある副問合せの実行方式」を参照してください。
- WORK TABLE ATS SUBQ:
-
副問合せの処理方式が作業表ATS実行であることを示します。
- WORK TABLE SUBQ:
-
副問合せの処理方式が作業表実行であることを示します。
- ROW VALUE SUBQ:
-
副問合せの処理方式が行値実行であることを示します。
- HASH SUBQ:
-
副問合せの処理方式がハッシュ実行であることを示します。
- NESTED LOOPS WORK TABLE SUBQ:
-
副問合せの処理方式がネストループ作業表実行であることを示します。
- NESTED LOOPS ROW VALUE SUBQ:
-
副問合せの処理方式がネストループ行値実行であることを示します。
- ff...f:
-
副問合せの実行方式でSQL最適化指定が指定されている場合,その指定が有効であったかどうかを表示します。SQL最適化指定については,マニュアル「HiRDB SQLリファレンス」を参照してください。
- AS SPECIFIED:
-
指定が有効であったため,SQL最適化指定を適用しました。
- SPECIFICATION IGNORED:
-
指定が無効であったため,SQL最適化指定を無視しました。
- gg…g-CLM hh…h:
-
副問合せ,WITH句問合せ式本体,ビュー定義,及びHiRDBが内部的に問合せ式本体を作成する場合,上位の問合せに転送をするときの転送方法を表示します。
gg…gは転送に使用する列数,hh…hは転送方法の種類となります。転送方法の種類については,「転送方法の種類」を参照してください。
- ii...i:
-
集合演算処理のORDER BYの処理方式を表示します。ORDER BYを指定していない場合,この行を表示しません。ORDER BYの処理方式については,「ORDER BY処理方式の種類」を参照してください。
HiRDB/シングルサーバの場合は,問合せ処理情報にも問合せ処理のORDER BYの処理方式を表示します。
- jj...j:
-
集合演算処理のための,フロータブルサーバの要求数を表示します。フロータブルサーバが不要な場合は0を表示します。HiRDB/シングルサーバの場合は表示しません。
- kk...k = [ll...l mm...m{CC...C}] nn...n [ll...l mm...m{CC...C}]:
-
集合演算の演算順序を表示します。集合演算を複数指定した場合は,複数行に分けて表示します。
- kk...k:
-
集合演算結果の集合演算番号を,"LID(集合演算番号)"で表示します。
- ll...l:
-
結合する問合せ式本体が問合せ指定の場合,"QID(問合せID)"を表示します。結合する問合せ式本体が複数の問合せ指定の結合結果の場合,"LID(集合演算番号)"を表示します。
- mm...m{CC...C}:
-
集合演算をする前に,作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。
ソートをしないで作業表を作成する場合は,"LIST"を表示します。ソートをして作業表を作成する場合は,"LIST(SORT)"を表示します。
LIMIT句指定時に,作業表を作成しないで,ソート結果の先頭からn件だけをメモリ上で求める場合には,"MEM(SUBSORT)"を表示します。
- nn...n:
-
集合演算の種別("UNION","UNION ALL","EXCEPT",又は"EXCEPT ALL")を表示します。前後にある[ll...l mm...m{CC...C}]は,結合する問合せ式本体となります。
集合演算の演算順序の表示例を次に示します。
((SELECT C1 FROM T1 ...................問合せID:1 UNION SELECT C1 FROM T2) ..........問合せID:2 UNION ALL SELECT C1 FROM T3) ....問合せID:3
SetOpe Process : LID(1) = [QID(1) LIST(SORT) {...}] UNION [QID(2) LIST(SORT) {...}] LID(2) = [LID(1) LIST{...}] UNION ALL [QID(3) LIST{...}]