シングルレコードバッファリング 

シングルレコードバッファリングでは、実際に読み込まれるレコードのみがバッファにロードされます。したがって、シングルレコードバッファリングでは、ジェネリックバッファリングやフルバッファリングと比べて必要なメモリ領域が小さくなります。しかし、バッファにおける管理コストはジェネリックバッファリングやフルバッファリングに比べると高くなります。他のバッファリングタイプに比べて、レコードをロードするときにデータベースアクセスが非常に頻繁に行われるようになります。

以下の例では、テーブル SCOUNTER から赤で強調表示されたレコードがプログラムにより読み込まれます。シングルレコードバッファリングがテーブルに対して選択された場合は、読み込まれたレコードのみがバッファにロードされます。

シングルレコードバッファリングを選択する場合

シングルレコードバッファリングは、特に数個のレコードのみが SELECT SINGLE を使用してアクセスされる大きいテーブルに対して使用してください。アクセスされるレコードのサイズは、 100 KB から 200 KB までの範囲としてください。

フルバッファリングは、一般には頻繁にアクセスされる小さいテーブルに適しています。これは、フルバッファリングでこのようなテーブルをロードすれば 1 回のデータベースアクセスですむのに対して、シングルレコードバッファリングでは複数回のデータベースアクセスが必要だからです。

バッファデータへのアクセス

SELECT SINGLE を使用しない場合は、すべてのアクセスはデータベースに直接行われ、バッファは使用されません。これは、完全なキーが SELECT 命令で指定されていても同様です。

SELECT SINGLE を使用してまだバッファリングされていないレコードにアクセスするときは、レコードをロードするためのデータベースアクセスが発生します。このレコードは、テーブルに指定されたキーを持つレコードがない場合に、バッファで非存在とマークされます。これにより、後に同じキーでテーブルにアクセスするときにもう一度データベースアクセスを行う必要がなくなります。