三流備忘録
実行計画の取得(EXPLAIN PLAN)
説明
EXPLAIN PLANで実行計画を取得できます。
準備
PLAN_TABLEを作成する。 utlxplan.sqlを実行( ORA_HOME \rdbmsXX\admin\)
※PLAN_TABLEはユーザー毎に必要
※PLAN_TABLEはバージョン毎に違う
実行計画の取得
PLAN_TABLのデータ削除
TRUNCATE PLAN_TABLE;
EXPLAIN PLANの実行
EXPLAIN PLAN
SET STATEMENT_ID='PLANTEST' --任意のID指定、省略可
FOR --実行計画を取得するSQL文
SELECT hogeid,hogename
FROM tbl_hoge a , tbl_hoge b
WHERE hogeid = 100;
実行結果の取得
SELECT DECODE( id,0,'',
LPAD(' ',3*(level-1))||level||'.'||position)||' '||operation||' '||options||' '||object_name||' '|| object_type||' '||DECODE(id,0,'Cost = '||position) RESULT
FROM plan_table CONNECT BY PRIOR id = parent_id AND statement_id = 'PLANTEST'
START WITH id = 0 AND statement_id = 'PLANTEST';