11.9.1 スナップショット方式によるページアクセスの効果と指定方法
性能向上を目的とした機能(グループ分け高速化機能など)を適用できない検索をするとき,条件に合致する行数とほぼ同数回グローバルバッファにアクセスしています。スナップショット方式では,最初のアクセス時にバッファ内の探索条件に一致するすべての行をプロセス固有メモリ上にコピーし,2回目以降の同一ページのアクセスはプロセス固有メモリ上を参照して検索結果を返します。スナップショット方式の概要を次の図に示します。
(1) スナップショット方式によるアクセスの効果
最初に探索条件に一致する行をプロセス固有メモリにコピーするため,2回目以降のアクセス時に掛かる検索時間を短縮できます。また,グローバルバッファへのアクセス回数を削減し,同一グローバルバッファへのアクセスの集中を防ぎます。
(3) 指定上の考慮点
スナップショット方式を指定すると,表又はインデクスの格納RDエリアのページサイズに基づいて,動的にプロセス固有メモリが確保されます。確保されるプロセス固有メモリの計算式については,HiRDB/シングルサーバの場合「スナップショット方式指定時に必要なメモリ所要量の求め方」を参照してください。HiRDB/パラレルサーバの場合「スナップショット方式指定時に必要なメモリ所要量の求め方」を参照してください。
(4) スナップショット方式の適用可否
検索時にスナップショット方式を適用するかどうかを次の表に示します。
適用可否が×になっている場合は,システム定義のpd_pageaccess_modeオペランドでSNAPSHOTを指定しても,アクセス性能に効果がないため,スナップショット方式が適用されません。
条件 |
アクセス対象別 の適用可否 |
||
---|---|---|---|
表 |
インデクス |
||
システム共通定義にpd_indexlock_mode=KEYを指定した場合に次の条件を満たさない検索
|
− |
× |
|
ホールダブルカーソルを使った検索 |
× |
× |
|
検索方式がインデクススキャン(INDEX SCAN,MULTI COLUMNS INDEX SCAN)の検索 |
WITHOUT LOCK WAIT指定の場合 |
× |
× |
上記以外 |
× |
○ |
|
検索方式がROWID FETCHの検索 |
× |
− |
|
次の列を指定している検索
|
WITHOUT LOCK WAIT指定の場合 |
× |
△ |
上記以外 |
× |
○ |
|
ページ内のヒット件数が1件になるような探索条件を指定した検索 |
× |
× |
|
プラグインインデクスを使った検索 |
× |
× |
|
ディクショナリ表に対する検索 |
× |
× |
- (凡例)
-
○:適用します。
×:適用しません。
△:検索方式がキースキャン(KEY SCAN,MULTI COLUMNS KEY SCAN)の場合に適用します。
−:条件に依存しません。又は該当しません。