
EXPLAIN PLAN FORコマンドとは
実行時に、オプティマイザが立てたSQLの実行計画を観察するツールです。
「実行計画」について分からない方は、下記の記事をご参照下さい。
EXPLAIN PLAN FORコマンドの使い方
1.PLAN_TABLEテーブルの作成(最初のみ)
まず、EXPLAIN PLANコマンドは、SQLの実行計画を「PLAN_TABLE」というテーブルに格納します。
なので、最初に「PLAN_TABLEテーブル」というテーブルを作成する必要があります。
なお、一度作成したら、以後は作成する必要はないです。
まずは、「%ORACLE_HOME%\rdbms\admin\utlxplan.sql」ファイルのSQLを該当のスキーマに対して実行します。
SQL実行後、「PLAN_TABLE」がスキーマ内に作成されています。
2.SQL実行計画を保存する。
下記の構文を実行します。
1 |
EXPLAIN PLAN FOR <SQL> |
ためしに実行してみます。
実行すると、上記のように表示されました。
3.PLAN_TABLEテーブルから、SQL実行計画を抽出します。
そのまま、「PLAN_TABLE」のデータを読み取るのは大変なので、下記のSQLを実行して、結果を整形しましょう。
1 2 3 4 5 6 7 |
SELECT LPAD(' ',2*LEVEL) || RTRIM(OPERATION) || ' ' || RTRIM(OPTIONS) || ' ' || RTRIM(OBJECT_NAME) AS EXECUTION_PLAN FROM PLAN_TABLE CONNECT BY PRIOR id = parent_id START WITH ID = 0 |
実行結果
この結果では、「USER_MASTER」テーブルに対して、フルテーブルスキャンでアクセスしていることがわかります。
この記事へのコメントはありません。