Hitachi

ノンストップデータベース HiRDB Version 10 システム導入・設計ガイド(UNIX(R)用)


10.9.1 スナップショット方式によるページアクセスの効果と指定方法

性能向上を目的とした機能(グループ分け高速化機能など)を適用できない検索をするとき,条件に合致する行数とほぼ同数回グローバルバッファにアクセスしています。スナップショット方式では,最初のアクセス時にバッファ内の探索条件に一致するすべての行をプロセス固有メモリ上にコピーし,2回目以降の同一ページのアクセスはプロセス固有メモリ上を参照して検索結果を返します。スナップショット方式の概要を次の図に示します。

図10‒4 スナップショット方式の概要

[図データ]

〈この項の構成〉

(1) スナップショット方式によるアクセスの効果

最初に探索条件に一致する行をプロセス固有メモリにコピーするため,2回目以降のアクセス時に掛かる検索時間を短縮できます。また,グローバルバッファへのアクセス回数を削減し,同一グローバルバッファへのアクセスの集中を防ぎます。

(2) 指定方法

pd_pageaccess_modeオペランドにSNAPSHOT(省略値)を指定します。

(3) 指定上の考慮点

スナップショット方式を指定すると,表又はインデクスの格納RDエリアのページサイズに基づいて,動的にプロセス固有メモリが確保されます。確保されるプロセス固有メモリの計算式については,HiRDB/シングルサーバの場合「スナップショット方式指定時に必要なメモリ所要量の求め方」を参照してください。HiRDB/パラレルサーバの場合「スナップショット方式指定時に必要なメモリ所要量の求め方」を参照してください。

(4) スナップショット方式の適用可否

検索時にスナップショット方式を適用するかどうかを次の表に示します。

適用可否が×になっている場合は,システム定義のpd_pageaccess_modeオペランドでSNAPSHOTを指定しても,スナップショット方式が適用されません。

表10‒1 検索時のスナップショット方式の適用可否

条件

適用可否

インデクス

次のどれかに該当する

  • ホールダブルカーソルを使用

  • 対象表がディクショナリ表

  • プラグインインデクスを使用(PLUGIN INDEX SCAN,PLUGIN KEY SCAN)

  • 行識別子を使用(ROWID FETCH)

×

×

上記以外

テーブルスキャン(TABLE SCAN)

次の列を指定している検索

  • 定義長256バイト以上のVARCHAR,MVARCHAR,NVARCHAR型の列

  • 繰返し列

  • 抽象データ型の列

  • LOB列

  • 定義長256バイト以上のBINARY型の列

×

上記以外

インデクススキャン(INDEX SCAN,MULTI COLUMNS INDEX SCAN)

システム定義にpd_indexlock_mode=KEYを指定した場合に次の条件を満たさない検索

  • WITHOUT LOCK NOWAIT指定の検索

  • LOCK TABLE前提の検索

×

×

WITHOUT LOCK WAIT指定の検索

×

×

上記以外

×

キースキャン(KEY SCAN,MULTI COLUMNS KEY SCAN)

システム定義にpd_indexlock_mode=KEYを指定した場合に次の条件を満たさない検索

  • WITHOUT LOCK NOWAIT指定の検索

  • LOCK TABLE前提の検索

×

上記以外

(凡例)

○:適用します。ただし,ページ内のヒット行が1件のときは適用されません。

×:適用しません。

−:条件に依存しません。又は該当しません。