| |
| |
|
Oracle Tips by Burleson Consulting |
Tuning the DBWR Process
The DBWR process manages the buffer cache.
In this capacity, it writes filled buffers from the buffer cache in
the SGA to the disks. Obviously, a properly tuned DBWR process will
be the first step in tuning I/O for the Oracle system. The DBWR
process, as described in the section on UTLBSTAT and UTLESTAT, uses
the hidden INIT.ORA parameters _DB_BLOCK_WRITE_BATCH and _DB_BLOCK_MAX_SCAN_CNT
in Oracle8 to determine when it should write used, or dirty, buffers
to the disk, thus freeing them for further use. DBWR triggers on the
following conditions:
-
A user process writes a used buffer to
the dirty buffer list and finds it is _DB_BLOCK_WRITE_BATCH / 2
long.
-
A user process searches _DB_BLOCK_MAX_SCAN_CNT
buffers without finding a clean one.
-
The DBWR has been inactive for three
seconds.
-
When a checkpoint occurs, LGWR signals
DBWR to trigger it to write.
The DBWR writes out _DB_BLOCK_WRITE_BATCH
buffers each time it is triggered. If there aren't that many buffers
in the dirty buffer list, the buffers on the LRU list are written
until _DB_BLOCK_WRITE_BATCH buffers are written.
Note
In Oracle8i and Oracle9i, you can no longer
tune the parameters mentioned above because they have been
deprecated. In Oracle8i and Oracle9i, the parameter _DB_WRITER_MAX_WRITES
controls the maximum number of outstanding I/Os that a database
writer can issue, but you should not touch this parameter unless
instructed to by Oracle Support.
See Code Depot

www.oracle-script.com |