【ORACLE】実行計画

概要

実行計画は、SQLが実行される手順。
統計情報をもとに、最短で実行されるように計画される。
そのため、統計情報が最新でないと適切な実行計画が作成されない。

実行計画の確認方法

方法1.EXPLAN PLANを使用

実行したときの情報ではなく、Oracleが予測した情報のため、
実際に実行したときの実行計画と異なる場合がある。

--select文の解析
EXPLAIN PLAN FOR 確認したいselect文;

--実行計画表示
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
方法2.DISPLAY_CURSORを使用

実際にSQLを実行しているのでこっちのほうが精度が高い

--事前に権限の付与が必要
GRANT SELECT ON V_$SESSION TO ユーザー名;
GRANT SELECT ON V_$SQL_PLAN TO ユーザー名;
GRANT SELECT ON V_$SQL TO ユーザー名;
GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO ユーザー名;
--select文の実行
確認したいselect文;

--実行計画表示
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR()); --引数を指定しない場合は直近のSQLの実行計画を表示

実行計画の内容

インデックスが使用できている場合


インデックスが使用できていない場合(テーブルフルスキャン)