Basing data pool sizes on query plans and I/O

Divide a cache into pools based on the proportion of the I/O performed by queries that use the corresponding I/O sizes. If most queries can benefit from 16K I/O, and you configure a very small 16K cache, you may see worse performance.

Most of the space in the 2K pool remains unused, and the 16K pool experiences high turnover. The cache hit ratio is significantly reduced.

The problem is most severe with nested-loop join queries that must repeatedly reread the inner table from disk.

Making a good choice about pool sizes requires: