by Hayato Matsuura.

実行計画の表示方法


Oracleでの実行計画の確認は、以下の2ステップからなります。

  1. explain plan for : 実行計画をPLAN_TABLEに保存。

  2. 実行計画をフォーマットし表示。

実行計画の作成と保存

実行計画を作成するには、SQL文の前にexplain plan forを付けるだけです。

EXPLAIN PLAN FOR select * from dual

explain plan forコマンドは、開発環境や SQL*Plusで実行できます。しかしこのコマンドを実行しただけでは 実行計画は表示されず、PLAN_TABLEというテーブルに保存されるだけです。 10g以降から、このテーブルはグローバル一時表として 自動的に使用可能になります。それ以前のバージョンでは、スキーマごとに作成する必要があります。データベース管理者に 作成を依頼するか、Oracleのインストール時にcreate table文を実行します。

$ORACLE_HOME/rdbms/admin/utlxplan.sql

この文は、PLAN_TABLEを作りたいどのスキーマでも実行できます。

警告

explain plan forコマンドは、 実際に文が実行される時と同じ実行計画を生成するとは限りません。

協力してください

この記事が気に入ったら、私の書いた本「SQLパフォーマンス詳解」や私によるトレーニングもきっと気にいるはず。

実行計画の表示

DBMS_XPLANパッケージは9i R2で登場し、 PLAN_TABLEから実行計画を取り出してフォーマットし 表示できます。次は、現在のデータベースセッションで取り出した最新の実行計画を表示する方法を示す例です。

select * from table(dbms_xplan.display)

もしこの文がうまく動かないようなら、DBAの助けを呼びましょう。

このクエリは、以下の通りの形式で実行計画を表示します。

--------------------------------------------------------------
| Id | Operation         | Name | Rows | Bytes | Cost (%CPU)|.
--------------------------------------------------------------
|  0 | SELECT STATEMENT  |      |    1 |     2 |     2   (0)|.
|  1 |  TABLE ACCESS FULL| DUAL |    1 |     2 |     2   (0)|.
--------------------------------------------------------------

この実行計画に表示されている列のうちのいくつかは、この本ではページの幅に合うように削除しています。

著者について

Markus Winandの写真

Markus Winand氏は、開発者がSQLパフォーマンスを改善するお手伝いをしています。彼は、SQL Performance Explainedの 著者でもあり、出張トレーニングhttp://winand.at/での リモート講義も 行っています。

彼の本

カバー『SQLパフォーマンス詳解』

核心をわかりやすく 解説。

Markusから購入します
(送料無料+PDF)

Amazonで購入
(印刷版のみ)

Do not use offset for pagination

Learn why

Visit my sibling!A lot changed since SQL-92!

Use The Index, Luke のカップは

ステッカー、コースター、本、コーヒーマグ。 学習に必要なものすべて。

今すぐ購入

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter
“Use The Index, Luke!” by Markus Winand is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
法律上の通知 | お問い合わせ | 無保証 | 商標 | プライバシーとGDPR | CC-BY-NC-ND 3.0 license