管理の手引き


行のブロック化

行のブロック化は、単一の操作で複数の行からなるブロック を取り出し、 データベース・マネージャーのオーバーヘッドを少なくするためのテクニックです。 それらの行はキャッシュに格納され、 アプリケーションの各 FETCH 要求ごとに一度に 1 行ずつ処理されます。 ブロック内の全部の行が処理されると、 別の行ブロックがデータベース・マネージャーによって取り出されます。

キャッシュは、アプリケーションが OPEN CURSOR 要求を発行する時に割り振られ、 カーソルがクローズされるときに割り振り解除されます。 キャッシュのサイズは、入出力ブロックのためのメモリーを割り振るときに使用される構成パラメーターによって決まります。 使用されるパラメーターは、 クライアントがローカルであるかリモートであるかによって異なります。

ローカル・アプリケーションの場合、 1 ブロックごとに返される行の数は下記の式で計算されます。ただし、

Rows per block = aslheapsz * 4096 / orl

リモート・アプリケーションの場合、 1 ブロックごとに返される行の数は下記の式で計算されます。ただし、

Rows per block = rqrioblk / orl

SELECT ステートメントの中で、FETCH FIRST n ROWS ONLY 文節、 または OPTIMIZE FOR n ROWS 文節を使用した場合、 1 ブロック当たりの行数は、以下の 2 つの値のうち小さい方になります。

PREP コマンドと BIND コマンドで BLOCKING オプションを使用すると、 以下のいずれかの種類の行ブロック化を指定できます。

UNAMBIG
読み取り専用カーソルと "FOR UPDATE OF"と指定されていないカーソルの場合に、 ブロック化が行われる。 未確定のカーソルは、更新可能として扱われます。
ALL
読み取り専用カーソルと "FOR UPDATE OF"と指定されていないカーソルの場合に、 ブロック化が行われる。 未確定のカーソルは、読み取り専用として扱われます。
NO
どのカーソルの場合もブロック化は行われない。 未確定のカーソルは、読み取り専用として扱われます。

ここに示したタイプの行ブロック化の詳細については、 コマンド解説書 の中の PREP コマンドと BIND コマンドの説明を参照してください。

PREP および BIND コマンドにオプションを何も指定しない場合、 省略時の行ブロック化タイプは UNAMBIG になります。 コマンド行プロセッサーおよびコール・レベル・インターフェースの場合、 省略時の行ブロック化は ALL です。

カーソルの詳細については、SQL 解説書 を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]