Use the following statement to flush the buffer cache.
SELECT o.owner,
o.object_type,
substr(o.object_name,1,10)
objname,
b.objd,
b.status,
count(b.objd)
FROM v$bh b, dba_objects o
WHERE b.objd = o.data_object_id
AND o.owner not in ('SYS','SYSTEM','SYSMAN')
GROUP BY o.owner,
o.object_type,
o.object_name,
b.objd,
b.status;
OWNER
OBJECT_TYPE
OBJNAME OBJD STATUS
COUNT(B.OBJD)
------------ ------------------- ---------- ---------- ------- -------------
GEO
LOB
SYS_LOB000 126293
cr
5
GEO
LOB
SYS_LOB000 126457
cr
5
GEO
LOB
SYS_LOB000 126666
cr
5
GEO
LOB
SYS_LOB000 126531
cr
5
GEO
LOB
SYS_LOB000 126537
cr
5
SQL> alter system flush buffer_cache;
SELECT o.owner,
o.object_type,
substr(o.object_name,1,10)
objname,
b.objd,
b.status,
count(b.objd)
FROM v$bh b, dba_objects o
WHERE b.objd = o.data_object_id
AND o.owner not in ('SYS','SYSTEM','SYSMAN')
GROUP BY o.owner,
o.object_type,
o.object_name,
b.objd,
b.status;
OWNER
OBJECT_TYPE
OBJNAME OBJD STATUS
COUNT(B.OBJD)
------------ ------------------- ---------- ---------- ------- -------------
GEO
LOB
SYS_LOB000 126293
free
1
GEO
LOB
SYS_LOB000 126457
free
1
GEO
LOB
SYS_LOB000 126666
free
1
GEO
LOB
SYS_LOB000 126531
free
1
GEO
LOB
SYS_LOB000 126537
free
1
However, note that this clause is intended for use
only on a test database. It is not advisable to use this clause on a production database,
because subsequent queries will have no hits, only misses.
A checkpoint performs the following three operations:
-
Every dirty block in the buffer cache is written to the data
files.
That is, it synchronizes the datablocks in the buffer cache with the datafiles on
disk.
It's the DBWR that writes all modified database blocks back to the
datafiles.
-
The latest SCN is written (updated) into the datafile header.
-
The latest SCN is also written to the controlfiles.
The following events trigger a checkpoint.
-
Redo log switch
-
LOG_CHECKPOINT_TIMEOUT has expired
-
LOG_CHECKPOINT_INTERVAL has been reached
-
DBA requires so (alter system checkpoint)
Additionally, if a tablespace is hot backuped, a checkpoint for the
tablespace in question is taking place. While redo log switches cause a checkpoint,
checkpoints don't cause a log switch.
SQL> alter system checkpoint;