実行計画の使い方

SQL の道すじを見る(Oracle)

書き方

EXPLAIN PLAN FOR SELECT …;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id'));
EXPLAIN PLAN SET STATEMENT_ID = '名前' FOR …;

EXPLAIN PLAN は SQL を実行せずに、オプティマイザが選ぶ道すじ(実行計画)を PLAN_TABLE に入れます(Explained.)。DBMS_XPLAN.DISPLAY で表にして読みます。下の段(字下げの深いもの)から先に動きます。TABLE ACCESS FULL は表を全部読む、INDEX RANGE SCAN は索引で探す道。Rows は推定の行数、Cost は推定の重さです。DISPLAY_CURSOR(sql_id) は、共有プールにある SQL(V$SQL)の実際の計画を出します。

例

EXPLAIN PLAN FOR SELECT * FROM app.orders WHERE customer_id = 42;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

実際に打って練習する

Oracle DBA コースの Lv44「道すじを読む 実行計画」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

Oracle Database の管理コマンド一覧(DBA)へ戻る