ここではOracleのEXPLAIN PLAN文を使って実行計画を取得を紹介します。
実行計画の取得
EXPLAIN PLAN文を使用すると、指定したSQL文を実行するためにOracle Databaseが使用する実行計画を取得できます。
- PLAN_TABLEがあるか確認します。PLAN_TABLEはEXPLAIN PLAN文の出力を保持するグローバル一時表として自動的に作成されます。
SELECT * FROM PLAN_TABLE;
- PLAN_TABLEが存在して、既にデータがある場合はデータを削除します。
DELETE FROM PLAN_TABLE;
- 実行したいSQL文の先頭に「EXPLAIN PLAN FOR」を付けて実行します。
EXPLAIN PLAN FOR SELECT * FROM emp;
※「A5:SQL Mk-2」で実行した場合、「SQL statement doesn’t return rows」というエラーが表示されますが無視して構いません。 - PLAN_TABLEの中身を確認します。
SELECT * FROM PLAN_TABLE;
※PLAN_TABLEのすべての列の説明については、Oracleのデータベース・リファレンスを参照してください。 - PLAN_TABLEは列数が多いため以下のSQL文を実行します。
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());
以下のように整形された情報が取得できます。
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY()); |
以上、EXPLAIN PLAN文による実行計画の取得について解説しました。