Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: FLUSHING SELECTED data FROM MEMORY
On Sun, 07 Feb 1999 07:42:14 GMT, chandrasekar_at_my-dejanews.com wrote:
>Hi all, I am performing a ORACLE benchmark on the time taken to retrive data
>from the database . To do that , I need to run a lot of select statements in
>a particular table which has 200 columns and 4000 rows with a record size of
>20k.
>
> Since the tests need to be conducted for many times , I need to flush the
>selected value from the data base buffers to avoid cache hits . Is there a
>way to flush all the selected values from the database buffers without
>shutting down the database . Can checkpointing the database be an ideal
>solution to avoid cache hits . Please help ...............
I'm affraid there is no way you could flush only selected blocks from the buffer cache. Checkpointing has nothing to do with removing db blocks from buffer cache, during checkpoints DBWR only writes dirty buffers from cache to db files, without removing them from the cache.
The only possibility (at least that I could think of) for performing such repetetive tests is to flush the blocks of the segments involved in test by isuing some large index scans (or something simmilar) and let the Oracle LRU mechanism do the actual removing of the current buffer entries.
To make sure all the blocks from your test tables/indexes were actualy flushed out, you could use the following query, which will list all the segments and number of their blocks currently residing in the buffer cache:
SELECT e.owner, e.segment_name, COUNT(*)
FROM dba_extents e, v$bh v
WHERE v.file# = e.file_id
AND v.block# BETWEEN e.block_id AND e.block_id+e.blocks
GROUP BY e.owner, e.segment_name;
>cheers & thankx in advance
>chandrasekar
HTH,
Jurij Modic <jmodic_at_src.si>
Certified Oracle7 DBA (OCP)
![]() |
![]() |