SESSION CACHED CURSORS

目次

基本情報

 

パラメータ情報

 

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エラー