Full Buffering 

With full buffering, either the entire table is in the buffer or the table is not in the buffer at all. All the records of the table are loaded into the buffer when one record of the table is read.

In this example, the record highlighted in red is read by a program from table SCOUNTER. If the table is fully buffered, all the records of the table are loaded into the buffer.

The data records are sorted in the buffer according to the table key. When the table is accessed with SELECT, only fields up to the last specified key field can be used for the access. The flush left part of the key should therefore be as large as possible in such accesses. For example, if you do not define the first key field, a full table scan takes place in the buffer. In this case direct access to the database can be more efficient if the database has suitable secondary indexes.

When Should you Use Full Buffering?

When considering whether a table should be fully buffered, you should take into account the size of the table, the number of read accesses, and the number of write accesses. Tables best suited to full buffering are small and are subjected to a large number of read accesses, but are rarely written to.

Full buffering is recommended in the following cases: