
SESSION CACHED CURSORS - 日本エクセム株式会社 Oracleパラメータ
基本情報
Parameter情報
説明
SESSION_CACHED_CURSORSパラメータの値が0よりも大きい場合Session Cursor Caching機能が使用されます。Session Cursor Caching機能は、1つのSession内で三回以上実行されたSQL StatementをPGA領域にCacheすることを意味します。
一般的に、Soft Parseが多く、一度に多数のCursorを使用するApplicationはSESSION_CACHED_CURSORSパラメータの値を大きくすることにより、library cacheラッチ競合を減らすことができます。
注意
高SESSION_CACHED_CURSORS値とShared Pool Fragmentation
Session Cursor CachingによってPGAのCacheたCursorは次のような方法でShared Poolに固定されます。
固定された領域は、Flushされません。したがってSession Curors CachingによってCacheたCursorの基本的な情報は、Shared Poolに続いて常駐することになります。このような理由のためにCacheたCursorには、Shared Poolの特定の領域に直接Accessが可能であり、その分library cacheラッチを占有する時間が減少します。一方、このようにCacheされたCursorの数が多すぎると、それだけFlushされないCursor(Heap0)の数が増加します。したがってShared PoolのFragmentation現象が発生することがあります。
このような理由のためにHard Parseが多いシステムでは、Flushがスムーズに行われるため、SESSION_CACHED_CURSORSパラメータ値を低く設定するのが良い方法となります。通常50程度の値で開始することを推奨され、Hard ParseとSoft Parseの発生程度、Shared Poolのサイズに応じて加減する方式を使用します。