catch-img

OPTIMIZER INVALIDATION PERIOD - 日本エクセム株式会社 Oracleパラメータ


目次[非表示]

  1. 1.基本情報
    1. 1.1.Parameter情報
    2. 1.2.説明
  2. 2.注意
    1. 2.1.10gでの統計情報収集
  3. 3.関連情報

基本情報

Parameter情報

Syntax:_OPTIMIZER_INVALIDATION_PERIOD
設定方法:・Parameter File
     ・ALTER SYSTEM SET “_OPTIMIZER_INVALIDATION_PERIOD” = 18000
     ・ALTER SESSION SET “_OPTIMIZER_INVALIDATION_PERIOD” = 18000
バージョンとデフォルト
9iR2 : -
10gR1: 18000
10gR2: 18000
11g  : ?


説明

 Oracle10gから統計情報を収集する際に関連SQL Cursorをすぐにinvalidationさせず、一定時間が経過した後invalidationさせます。_OPTIMIZER_INVALIDATION_PERIODパラメータは、この値を決定します。デフォルト値は18000(秒)(=5時間)です。つまり、統計情報の収集によって統計情報が変更された後、約5時間かけてランダムな時点に該当Cursorが実行されるとinvalidationが発生します。これを、Auto Invalidationと呼びます。一定時間にわたってランダムにCursorをInvalidationすることにより、特定の時点でHard Parseが一度に殺到する現象を回避することができます。

 DBMS_STATSパッケージを利用して統計情報を収集する際NO_INVALIDATEオプションを利用してSQL Cursorがinvalidationされる時点を指定することができます。NO_INVALIDATEオプションの値によるinvalidation動作は以下の通りです。

・NO_INVALIDATE= False:
  統計情報の変更時に関連するSQL Cursorがすぐにinvalidationされます。
  9iからのデフォルトです。

・NO_INVALIDATE= True:
  統計情報の変更時に関連するSQL Cursorをinvalidationしません。
  SQL CursorがShared PoolからFlushされた後、Reloadされる変更された統計情報が
  反映されます。

・NO_INVALIDATE= DBMS_STATS.AUTO_INVALIDATE:
  統計情報の変更時に関連するSQL Cursorを一定時間(_OPTIMIZER_INVALIDATION_PERIOD)にかけて
  均等に(ランダムに)invalidationします。
  10gでのデフォルトです。厳密に言えば、既存SQL Cursorをinvalidationさせるのではなく、
  新しいChild Cursorを生成します。生成されたChild CursorをV$ SQL_SHARED_CURSORビューで
  照会してみるとroll_invalid_mismatchによってMismatchが発生したものとして処理されることを
  確認することができます。


注意

10gでの統計情報収集

 Oracle10gからno_invalidateオプションのデフォルト値がDBMS_STATS.AUTO_INVALIDATEです。つまり、統計情報を再収集しても関連するSQL Cursorがinvalidateされなません。したがって、統計情報を反映して与えるにShared PoolをFlush(alter system flush shared_pool)しなければなりません。

 統計情報の収集の基本的なガイドは、Oracleの基本的な行動様式(すなわちAuto invalidation)を使用しますが、特定のSQL CursorをすぐにinvalidationするSessionレベルで_OPTIMIZER_INVALIDATION_PERIODパラメータの値を減らすことです。

alter system set "_optimizer_invalidation_period" = 1;


関連情報

1. DBMS_STATSパッケージ


CONTACT

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

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

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

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

平日 10時~18時

人気記事ランキング

タグ一覧