Oracleにおける、実際の統計情報を含む実行計画の確認は、次の3ステップからなります。
統計情報の有効化(任意)
SQL文の実行Executing the SQL statement
実行計画の取得
統計情報の有効化
各処理の時間など、すべてのランタイム統計情報を取得するには、これらの値の取得を先に有効にする必要があります。有効化は、対応する文に
/*+ 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 |.
---------------------------------------------------------------
ここで表示されている実行計画は、この本ではページの幅に合うように削除しています。