-
Can someone please tell me how the "Scan Depth" is calculated by the DBWR while searcing for free buffers in the LRU list of the database buffer(SGA). Appreciate your time.
-
I don't think we are able to get this info. It's under DBMS's control. Not sure.
-
I don't absolutly sure in 8.1.7 and 9i (because oracle changes internal algorithms, that work with db buffer cache).
-------------------------------------------------
1)
value of scan depth based on parameter:
_db_block_write_batch (by default) = min(1/2 * db_file_simultaneous_writes * #db_files, #buffes / 4, max_bath_size)
2)
in dbwr we know 2 addition parameters, that regulate scan depth value :
scan depth increment
scan depth decrement
3)
the dbrw scan depth is a selfajusting variable depending on how dbrw works with clear buffers on tail of LRU and =~
scan depth(current) + scan depth increment [if clear buffer size < 1/2 scan depth(current)]
scan depth(current) - scan depth decrement [if clear buffer size > 3/4 scan depth(current)]
else
scan depth(current) = scan depth(current)
----------------------------------------------------
PS:
select kvitdsc, kvitval from x$kvit where index in (7,8);
------------------------------------------
DBRW scan depth increment 4
DBRW scan depth decrement 1
[Edited by Shestakov on 03-22-2002 at 11:06 AM]
-
DBWR lru scans: the number of times that the database writer scans the lru
for more buffers to write. The scan can be invoked either by a make free
request or by a checkpoint.
DBWR summed scan depth: can be divided by DBWR lru scans to determine the
length of the scans through the buffer cache. This is NOT the number of
buffers scanned. if the write batch is filled and a write takes place
to disk, the scan depth halts.
DBWR buffers scanned: is the total number of buffers scanned when looking
for dirty buffers to write to disk and create free space. The count
includes both dirty and clean buffers. It does NOT halt like the
DBWR summed scan depth.
When a process searches DB_BLOCK_MAX_SCAN_CNT buffers in the list
without finding a free buffer. If this is the case it signals the
DBWR to write to make way for free buffers
_db_writer_scan_depth
"Number of LRU buffers for dbwr to scan when looking for dirty buffers"
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|