DBWR Question
DBAsupport.com Forums - Powered by vBulletin
Results 1 to 4 of 4

Thread: DBWR Question

  1. #1
    Join Date
    Mar 2002
    Posts
    171
    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.

  2. #2
    Join Date
    Jan 2002
    Location
    Canada
    Posts
    195
    I don't think we are able to get this info. It's under DBMS's control. Not sure.

  3. #3
    Join Date
    Sep 2001
    Location
    NJ, USA
    Posts
    1,287
    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]

  4. #4
    Join Date
    Feb 2001
    Posts
    389
    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
  •  



Click Here to Expand Forum to Full Width