Back
Home
Up
Next

Cache settings priority.

Database cache size can be determined by (in the order of importance):

  1. IB server built-in default.
  2. ibconfig file (server wide).
  3. Attachment level (per connection setting).
  4. Database wide cache size.

Notes:

1) IB server built-in default:
There are different values depending on IB version, e.g.
IB6 classic (Linux) - 75
IB6 superserver (Windows) - 2048
IB5 superserver (Windows) - 256

2) ibconfig file (server wide):
Do not forget to uncomment proper line (i.e. remove # from DATABASE_CACHE_PAGES line) and restart IB (superserver) to take change into account.

3) Attachment level:
It is set by isc_dpb_num_buffers in DPB block, of -c flag on isql command line. The behavior is different for Classic and for Superserver:

Because in classic IB each user runs its own copy of IB server, each user has its own buffers (i.e. changing number of buffers does not affect other users/processes), and thus user can set whichever value he/she wants (well, in given boundaries, which is 50 to 64K)

In superserver IB, buffers are shared among all users; it means

  • first connection can change the cache size without restrictions.
  • all subsequent (secondary) connections can only increase current value.

4) Database wide size:
It has highest priority, so it can't be changed even at attachment level! It is set usually by gfix (e.g. gfix -buffers 1234) and stored on gdb header page.

For anybody who wish to play with these settings: to check current cache size in isql and WISQL, use commands
SET STAT;
COMMIT;

(This article was contributed by Ivan Prenosil.)

 

This page was last updated on 2001-01-16 19:39:21