by Hayato Matsuura

実行計画の表示方法


Oracleにおける、実際の統計情報を含む実行計画の確認は、次の3ステップからなります。

  1. 統計情報の有効化(任意)

  2. SQL文の実行Executing the SQL statement

  3. 実行計画の取得

統計情報の有効化

各処理の時間など、すべてのランタイム統計情報を取得するには、これらの値の取得を先に有効にする必要があります。有効化は、対応する文に /*+ GATHER_PLAN_STATISTICS */ヒントを追加するか、セッション内のそれ以降の実行全てに対して有効化されるよう、次の文を実行します。

alter session set statistics_level = 'ALL'

協力してください

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

SQL文の実行

文を実行することで、実行計画は(SQLエリアに)キャッシュされます。ランタイム統計情報の収集を有効にした場合は、その情報も追加されます。

select * from dual

実行計画の取得

DBMS_XPLANパッケージは、SQLエリアから実行計画を表示します。次は、現在のデータベースセッションで最後に実行された実行計画を表示する方法の例です。

select * from table(dbms_xplan.display_cursor(null, null,
                                  'LAST ALLSTATS +COST'))

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

---------------------------------------------------------------
| Operation         | Name | E-Rows | Cost | A-Rows | A-Time |.
---------------------------------------------------------------
| SELECT STATEMENT  |      |        |    2 |      1 |  00.01 |.
|  TABLE ACCESS FULL| DUAL |      1 |    2 |      1 |  00.01 |.
---------------------------------------------------------------

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

前へ次へ

You can’t learn everything in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up. Have a look at modern-⁠sql.com as well.

著者について

Markus Winandの写真

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

彼の本

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

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

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

Amazon.co.jpで購入
(印刷版のみ)

Connect with Markus Winand

Markus Winand MailinglistsSubscribe RSS feedMarkus Winand on LinkedInMarkus Winand on XINGMarkus Winand on TwitterMarkus Winand on Bluesky
Copyright 2015-2025 Hayato Matsuura, Markus Winand. All righs reserved.
法律上の通知 | お問い合わせ | 無保証 | 商標 | プライバシーとGDPR