Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> KEEP pool and manually uncaching objects
I am waiting for a future release of oracle that will allow buffer pools to be
defined for tables and indexes, each with its own buffer ageing rules. It fits
in very well with partitioning by day for OLTP transactional databases, where
only the current day needs to be cached.
In the meantime, its a daily battle with the buffer flushing mechanisms. This is
what I need to do :
I have an OLTP app where throughput is EVERYTHING - I mean peak rates of nearly
3000 transactions per second. Buffer ageing is critical- I cant afford to have
required buffers flushed to disk.
Transactions are partitioned by business day, with a local index, and only the
current day's index partition is in the KEEP pool. Not the transactions
themselves : they are in recycle. This is to allow all index blocks to be cached
to allow fast inserts to the index. At end of day, I will change the current
index partition to the recycle pool, add a partition for the next day, and put
its index in the KEEP pool. Here the fun starts - I would like to be able to
flush all buffers for yesterdays' index to disk to make room for the todays
index. For an index already in the KEEP pool, if I alter-table it to the recycle
pool, will its buffers be aged out as new buffers are required, or are they
marked 'KEEP' as part of the buffer header, and will never be aged out. In
otherwords ; once a Keep buffer, always a Keep buffer?
Has anyone tested this stuff?
Regards
Mark Teehan
Perth, Australia
![]() |
![]() |