catch-img

GATHER PLAN STATISTICS - 日本エクセム株式会社 Oracle 技術情報


目次[非表示]

  1. 1.基本情報
    1. 1.1.使い方
    2. 1.2.サポート
  2. 2.参照事項
  3. 3.関連情報
  4. 4.外部参照


基本情報

 GATHER_PLAN_STATISTICSヒントを使用すると、SQLの実行時にRow Source Operation情報を収集します。収集された情報は、DBMS_XPLAN.DISPLAY_CURSORプロシージャを使用して確認可能です。


使い方

 GATHER_PLAN_STATISTICSヒントの使用方法は、次のとおりです。

SQL> select / * + gather_plan_statistics * / * from delete_test where id <1000;
 
SQL> select * from table(dbms_xplan.display_cursor(null、null、「ALLSTATS LAST '));
 -  10gR1で
 -  SQL> select * from table(dbms_xplan.display_cursor(null、null、「RUNSTATS_LAST '));
 -  null、null値は、最も最近に実行されたクエリを意味します。もし、特定のクエリを指定したい場合は
  SQL IDとChild Numberを与えます。
 
PLAN_TABLE_OUTPUT
-------------------------------------------------- ------------------------------
SQL_ID 04zt89r2fw2uw、child number 0
-------------------------------------
select / * + gather_plan_statistics * / * from delete_test where id <1000
 
Plan hash value:1827500787
 
-------------------------------------------------- -----------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
-------------------------------------------------- -----------------------------------------
| 1 | TABLE ACCESS BY INDEX ROWID | DELETE_TEST | 1 | 1 | 1000 | 00:00:00.01 | 140 |
| * 2 | INDEX RANGE SCAN | DELETE_TEST_IDX | 1 | 1 | 1000 | 00:00:00.01 | 70 |

Predicate Information(identified by operation id):
-------------------------------------------------- - 
   2  -  access( "ID" <1000)

上記の情報では、次のような用語を理解する必要があります。

・E-Rows:Estimated Row数を意味します。
・A-Rows:Actual Row数を意味します。E-RowsとA-Rowsが大きな違いが出た場合、
     統計情報とCostの計算に問題があることを意味します。
・A-Time:Actual Elapsed Timeを意味します。この時間には、情報収集によるOverheadを含んでいます。
・Buffers:読んだBuffer数を意味します。
・Starts:Row Source Operationを実行した回数を意味します。
     つまり、E-Rows* Startsの値をA-Rowsと比較しなければなりません。


サポート

 GATHER_PLAN_STATISTICSヒントは、Oracle10gからサポートされています。

参照事項

 GATHER_PLAN_STATISTICSヒントを使用すると、SQLの実行時に予測計画(Explain Plan)によるRow数と実際の実行(Row Source Operation)によるRow数を比較することができますので、チューニングするときに役立ちます。ただし、特定のバージョンやOSでは、STATISTICS_LEVELパラメータの値をALLにしなければなら正確な情報が出てくる場合があるので注意が必要です。


関連情報

1.DBMS_STASパッケージ
2.Explain Plan
3.10046 Event


外部参照

1.http://jonathanlewis.wordpress.com/2006/11/09/dbms_xplan-in-10g 
2.http://jonathanlewis.wordpress.com/2007/04/26/heisenberg/ 


CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧