2018.07.12
SESSION CACHED CURSORS
目次
- 1. 基本情報
- 2. 注意
- 3. 関連情報
基本情報
パラメータ情報
Syntax : SESSION_CACHED_CURSORS 設定方法 : ・Parameter File ・ALTER SESSION SET SESSION_CACHED_CURSORS = 100; ・ALTER SYSTEM SET SESSION_CACHED_CURSORS = 100;
バージョンとデフォルト 9iR2 : 0 10gR1: 0 10gR2: 0 11g : 0
説明
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に固定されます。
1. Cursorを構成するHeap0(Cursor基本情報)は、固定されます。 2. Cursorを構成するHeap6(Cursorの実行計画情報)は、固定されません。
固定された領域は、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のサイズに応じて加減する方式を使用します。
関連情報
1. CURSOR_SPACE_FOR_TIMEパラメータ 2. OPEN_CURSORSパラメータ 3. V$ OPEN_CURSORビュー 4. ORA-4031エラー