6.1.2 アクセスパスを確認するには
アクセスパスを確認するには次に示す2つの方法があります。
-
adbsqlサブコマンドの#SET OPT REPORTを実行してアクセスパス情報を確認する
-
SQLトレース情報中に出力されたアクセスパス情報を確認する
(1) #SET OPT REPORTを実行してアクセスパス情報を確認する方法
adbsqlコマンドの#SET OPT REPORTで,アクセスパス情報を表示できます。アクセスパス情報の表示手順を次に示します。
手順
-
adbsqlコマンドを実行する
-
adbsqlサブコマンドの#SET OPT REPORTを実行する
#SET OPT REPORT ON TYPE=PATH EXEC=PREPARE;
- メモ
-
この例では,SQL文の実行はしないで,アクセスパス情報だけを表示するため,EXEC=PREPAREを指定しています。SQL文を実行して,かつアクセスパス情報を表示したい場合は,EXEC=PREPAREを指定しないでください。
-
SQL文を実行する
SELECT * FROM "T1" WHERE "C1" =1 AND "C2" > 0;
上記のSQL文を実行すると,アクセスパス情報が表示されます。
<<Tree View>> 1 QUERY : 1 2 SELECT STATEMENT 3 +-TABLE SCAN(ADBUSER01.T1) -USING COST <<Detail >> QUERY : 1 3 TABLE SCAN(ADBUSER01.T1) INDEX NAME : RIDX INDEX TYPE : RANGE SKIP COND : CHUNK AND SEGMENT INDEX COLUMN : C1 <<COST Info>> TABLE : ADBUSER01.T1 COLLECT VERSION : 05-03 COLLECT TIME : 2020-05-25 13:36:46 <<SQL Info >> Version : 05-03 May 25 2020 12:51:53 Transaction ID : 1 Connection Number : 1 SQL Serial Number : 1
なお,この例での表およびレンジインデクスの定義は,次のとおりとします。
CREATE TABLE "T1"("C1" INTEGER,"C2" INTEGER) IN "DBAREA01" CREATE INDEX "RIDX" ON "T1"("C1") IN "DBAREA02" EMPTY INDEXTYPE RANGE
(2) SQLトレース情報中に出力されたアクセスパス情報を確認する方法
SQLトレースファイルに出力されたSQLトレース情報を,テキストエディタを使用して参照してください。SQLトレースファイルのファイル名を次に示します。
-
$ADBDIR/spool/adbsqltrc01.log〜adbsqltrc08.log
SQLトレース情報に出力されるアクセスパス情報の例を次に示します。
(例)
[SQL] SELECT * FROM "T1" WHERE "C1"=? AND "C2"=? AND "C3"=? [access path] <<Tree View>> 1 QUERY : 1 2 SELECT STATEMENT 3 +-TABLE SCAN(T1)
SQLトレース情報については,マニュアルHADB システム構築・運用ガイドのSQLトレース機能の運用を参照してください。