42.5.16 #SET OPT REPORT(インデクス情報,作業表情報,およびアクセスパス情報の表示)
(1) 機能
次に示すSQL文を実行した場合に,実行したSQL文に関するインデクス情報,作業表情報およびアクセスパス情報を表示するかどうかを指定します。
-
DELETE文
-
INSERT文
次に示す場合に,インデクス情報,作業表情報およびアクセスパス情報が表示されます。
-
INSERT文中に問合せ式本体を指定している場合
-
INSERT文中にVALUESを指定していて,かつ副問合せを指定している場合
-
-
PURGE CHUNK文
PURGE CHUNK文中に副問合せを指定している場合に,インデクス情報,作業表情報およびアクセスパス情報が表示されます。
-
SELECT文
-
UPDATE文
ただし,作業表を作成しないSQL文のときは,作業表情報は表示されません。
表参照に対してインデクス指定が指定されているときは,そのインデクス指定が適用されたかどうかがインデクス情報に表示されます。インデクス指定については,マニュアルHADB SQLリファレンスのインデクス指定の指定形式および規則を参照してください。
アクセスパス情報については,マニュアルHADB AP開発ガイドのAPのチューニングのアクセスパスの見方(SQL文の実行計画の見方)を参照してください。
初期値はOFF(インデクス情報,作業表情報およびアクセスパス情報を表示しない)になります。
(2) 指定形式
#SET OPT REPORT {ON 〔TYPE = {INDEX|PATH|ALL}〕 〔EXEC = {NORMAL|PREPARE}〕 |OFF};
(3) オプションの説明
- ON:
-
インデクス情報,作業表情報およびアクセスパス情報を表示します。
- 〔TYPE = {INDEX|PATH|ALL}〕:
-
出力する情報の種類を指定します。
INDEX:インデクス情報,および作業表情報を表示します。
PATH:アクセスパス情報だけを表示します。
ALL:インデクス情報,作業表情報,およびアクセスパス情報を表示します。
- 〔EXEC = {NORMAL|PREPARE}〕:
-
情報を表示したあと,SQL文を実行するかどうかを指定します。
NORMAL:情報を表示したあと,SQL文を実行します。
PREPARE:次に示すSQL文の場合は,情報だけを表示して,SQL文を実行しません。
-
DELETE文
-
INSERT文
-
PURGE CHUNK文
-
SELECT文
-
UPDATE文
それ以外のSQL文は,EXEC = PREPAREを指定しても実行されます。
-
- OFF:
-
インデクス情報,作業表情報およびアクセスパス情報を表示しません。
(4) 実行例
インデクス情報および作業表情報を表示したあとで,SQL文を実行する場合
COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ #SET OPT REPORT ON; ...1 KFAA96499-I OPT REPORT changed ( OFF -> ON ) COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ SELECT * FROM "T1" WHERE "C1"=100 ORDER BY "C2"; ...2 KFAA96405-I The B-tree index "INDX01" will be used. (table name="ADBUSER01"."T1" as "***") ...2 KFAA96406-I Executing this SQL will create 1 work tables. ...3 検索結果 ...4 COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+
- [説明]
-
-
インデクス情報および作業表情報の表示を指定して,#SET OPT REPORTを実行します。
-
SQL文を実行します。
-
インデクス情報および作業表情報として,メッセージが表示されます。出力されたメッセージから次に示すことがわかります。
・このSQL文を実行した際,B-treeインデクスINDX01が使用されます。
・このSQL文を実行した際,作業表が1つ作成されます。
-
SQL文の実行結果が表示されます。
-
すべての情報を表示したあとで,SQL文を実行する場合
COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ #SET OPT REPORT ON TYPE = ALL EXEC = NORMAL; ...1 KFAA96499-I OPT REPORT changed ( OFF -> ON ) COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ SELECT * FROM "T1" WHERE "C1"=100 ORDER BY "C2"; ...2 KFAA96405-I The B-tree index "INDX01" will be used. (table name="ADBUSER01"."T1" as "***") ...2 KFAA96406-I Executing this SQL will create 1 work tables. ...3 アクセスパス情報 ...4 KFAA96412-I The access path was output. ...5 検索結果 ...6 COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+
- [説明]
-
-
インデクス情報,作業表情報およびアクセスパス情報の表示を指定して,#SET OPT REPORTを実行します。
-
SQL文を実行します。
-
インデクス情報および作業表情報として,メッセージが表示されます。出力されたメッセージから次に示すことがわかります。
・このSQL文を実行した際,B-treeインデクスINDX01が使用されます。
・このSQL文を実行した際,作業表が1つ作成されます。
-
アクセスパス情報が表示されます。表示されたアクセスパス情報の見方については,マニュアルHADB AP開発ガイドのAPのチューニングのアクセスパスの見方(SQL文の実行計画の見方)のアクセスパスの見方の例を参照してください。
-
アクセスパス情報の表示完了を示すメッセージが出力されます。
-
SQL文の実行結果が表示されます。
-
アクセスパス情報だけを表示して,SQL文を実行しない場合
COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ #SET OPT REPORT ON TYPE = PATH EXEC = PREPARE; ...1 KFAA96499-I OPT REPORT changed ( OFF -> ON ) COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ SELECT * FROM "T1" WHERE "C1"=100 ORDER BY "C2"; ...2 アクセスパス情報 ...3 KFAA96412-I The access path was output. ...4 COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+
- [説明]
-
-
アクセスパス情報の表示を指定して,#SET OPT REPORTを実行します。
-
SQL文を実行します。
-
アクセスパス情報が表示されます。表示されたアクセスパス情報の見方については,マニュアルHADB AP開発ガイドのAPのチューニングのアクセスパスの見方(SQL文の実行計画の見方)のアクセスパスの見方の例を参照してください。
-
アクセスパス情報の表示完了を示すメッセージが出力されます。
-
(5) インデクス情報,および作業表情報として出力されるメッセージ
インデクス情報,および作業表情報として出力されるメッセージを次に示します。
- インデクス情報として出力されるメッセージ
-
インデクス情報として出力されるメッセージを次の表に示します。なお,インデクスが使用されない場合,メッセージは出力されません。
表42‒6 インデクス情報として出力されるメッセージの一覧 項番
出力されるメッセージ
インデクス情報の内容
1
KFAA96405-I
-
インデクス指定を指定していない場合
B-treeインデクスが検索に使用されます。
-
インデクス指定(WITH INDEX)を指定した場合
インデクス指定が無効※のため,指定以外のB-treeインデクスが検索に使用されます。
2
KFAA96407-I
B-treeインデクス,テキストインデクス,およびレンジインデクスのどれも検索に使用されません。
3
KFAA96408-I
レンジインデクスが検索に使用されます。
4
KFAA96409-I
インデクス指定(WITH INDEX)が適用され,指定したB-treeインデクスが検索に使用されます。
5
KFAA96410-I
インデクス指定(WITHOUT INDEX)が適用され,指定したB-treeインデクスまたはテキストインデクスの使用が抑止されます。
6
KFAA96411-I
インデクス指定が無効です。
7
KFAA96413-I
-
インデクス指定を指定していない場合
テキストインデクスが検索に使用されます。
-
インデクス指定(WITH INDEX)を指定した場合
インデクス指定が無効※のため,指定以外のテキストインデクスが検索に使用されます。
8
KFAA96414-I
インデクス指定(WITH INDEX)が適用され,指定したテキストインデクスが検索に使用されます。
- 注※
-
インデクス指定が無効になる場合を次に示します。
-
存在しないインデクス名を指定した場合
-
ナル値除外指定があるB-treeインデクスを指定しているが,インデクスの検索範囲にナル値を含む条件が指定された場合
-
テキストインデクスを指定しているが,指定したテキストインデクスで評価できるLIKE述語が指定されていないなど,HADBがテキストインデクスを有効に使用できない場合
-
-
- 作業表情報として出力されるメッセージ
-
作業表が作成された場合,作業表情報としてKFAA96406-Iメッセージが出力されます。作業表が作成されない場合,メッセージは出力されません。
(6) 留意事項
結合表のFULL OUTER JOINに指定した表については,同じインデクス情報が複数表示されることがあります。インデクス情報の詳細については,アクセスパス情報で確認してください。