SGA情報 - 実行計画
O-Analyzerは「O-Analyzerのダウンロード」から無償でダウンロードできます。ぜひご利用ください。画面概要
指定したSQL_ID(9iまでのバージョンではSQL_ADDRESS+SQL_HASH_VALUE)と子カーソル番号に紐づく実行計画を表示する。 また、実行計画だけではなく一部オペレーションでは実際の処理時間やメモリ使用量等の統計が合わせて表示されます注意
・この画面が使用できるのはDBが9.2以降のバージョンのみです。・表示する実行計画は共有プール上から抽出します。SQLカーソルが残っていても実行計画の情報が残っていなかった場合は表示されません。
使用方法
SQL_IDとCHILD_NUMBERを入力し実行を押すと実行計画が表示されます。 SQL_IDとCHILD_NUMBERはSQLカーソル画面と連動しておりSQLカーソル画面で選択中のSQL_IDとCHILD_NUMBERが自動的に入力されます。項目説明
・抽出条件項目名 | 説明 |
---|---|
SQL_ID(10g~) | 表示する実行計画のSQL_IDを指定します。 |
SQL_ADDRESS(~9i) | 表示する実行計画のSQL_ADDRESSを指定します。 |
SQL_HASH(~9i) | 表示する実行計画のSQL_HASHを指定します。 |
CHILD_NUMBER | 子カーソル番号を入力します。あるSQL文が複数の実行計画を持つ場合や、SQL文は同じだがオプティマイザの設定が異なる場合等に子カーソルが複数作成されます。 |
項目名 | 説明 |
---|---|
SQL文 | SQL_IDに紐づくSQLが表示されます。実行ボタンを押す前に表示されているSQLは先頭から1000byteまでの表示です。 |
項目名 | 説明 |
---|---|
TIME(MS) | CBOが予想した処理時間。 |
ACTIVE_TIME(MS) | 該当の作業領域が存在していた時間。作業領域はソートやハッシュ結合時に使用されます。この値は見積り値ではなく実際の時間です。 |
LAST_MEMORY_USED | 最後に実行した時に使用したメモリーのサイズ。この値は見積り値ではなく実際に使用したサイズです。 |
LAST_TEMPSEG_SIZE | 最後に実行した時に使用した一時表領域のサイズ。一時表領域はソートやハッシュ結合時にメモリ上にデータが乗り切らなかった場合に使用されます。この値は見積り値ではなく実際に使用したサイズです。 |
実行計画グリッドの選択行のアクセス述語が表示されます。
・フィルター述語※
実行計画グリッドの選択行のフィルター述語が表示されます。
※アクセス述語とフィルター述語の違い
アクセス述語はアクセス時に使用する検索条件で、フィルター述語は行を戻す前に適用する検索条件です。
例えば、以下のSQLと実行計画では「empno >= 0」はプライマリキー索引であるPK_EMPのレンジスキャンの条件として使用されるため③のアクセス述語になり、 「ename = 'aaa'」はPK_EMPから取り出したROWIDでテーブルをROWIDスキャンし、その結果をさらに検索条件で絞っているため②のフィルター述語になります。
select * from scott.emp where empno >= 0 and ename = 'aaa';
①SELECT STATEMENT(ALL_ROWS)
② TABLE ACCESS BY INDEX ROWID EMP
③ INDEX RANGE SCAN PK_EMP