DBAsupport.com Forums - Powered by vBulletin
Results 1 to 3 of 3

Thread: db_block_max_dirty_target - PT

Hybrid View

  1. #1
    Join Date
    May 2002
    Location
    Western Australia
    Posts
    233

    db_block_max_dirty_target - PT

    Hi guys,

    I got this question on an STS practice test:

    "What two things could result from an excessively high setting for DB_BLOCK_MAX_DIRTY_TARGET."

    The answer was "Dirty buffers are written too frequently" and "DBWn will use more memory".

    Now I'll go with the former but is the latter really true? After several direct quotes from Oracle documentation (funnily enough reading is a little trick I picked up in junior school!), the STS mentor suggested that DBWn may need to borrow additional memory from the SGA or even system memory in order to cache all the blocks before writing.

    I can't see anywhere in technet this can be confirmed.

    Any thoughts?

    Cheers

    Nick

  2. #2
    Join Date
    Feb 2001
    Posts
    295
    About the memory usage I found the following on ILT:

    If this parameter is set too high, the DBWn process might not write dirty buffers often
    enough, which can cause sessions to wait for free buffers.
    A excessive high value for the DB_BLOCK_MAX_DIRTY_TARGET parameter
    causes extra memory to be used by the DBWn process. The extra memory is allocated
    in the master process. Also, delays in read and write operations may be seen if this
    value exceeds the operating system capacity to process all requests, because these
    requests are queued waiting for the disk to become available.
    When setting this parameter, analysis of database statistics related to DBWn, such as
    the wait event WRITE COMPLETE WAITS in the V$SYSTEM_EVENT, is needed to
    determine whether you can benefit from a decreased value for
    DB_BLOCK_MAX_DIRTY_TARGET.
    As far as I know, FAST_START_IO_TARGET is much more accurate then DB_BLOCK_MAX_DIRTY_TARGET on 8i. Also, this parameter is obsolete on 9i. I never had the "luck" to use it myself, anyway.
    An ounce of action is worth a ton of theory.
    —Friedrich Engels

  3. #3
    Join Date
    May 2002
    Location
    Western Australia
    Posts
    233
    Cheers for the reply Adrian

    Originally posted by adrianomp
    About the memory usage I found the following on ILT:
    As far as I know, FAST_START_IO_TARGET is much more accurate then DB_BLOCK_MAX_DIRTY_TARGET on 8i. Also, this parameter is obsolete on 9i. I never had the "luck" to use it myself, anyway.
    Agreed, I was aware of that from the Oracle docs myself and it's exactly what the STS Mentor quoted.

    What I'm really asking is how DBWn uses memory. I kinda assumed the process would read a chunk of data into memory write it out then read another chunk. I presumed there would be a limit to the amount of memory used, possibly a number of Oracle blocks. For example on 7.3.4, Hp-UX 10.20 the dbwr for out production database has a constant size of 9760K. Now we run a pretty small database but would writing a large number of blocks cause that memory size to increase?

    I realise that in the real world on 8.1.7 and above, this parameter is largely irrelevant but, as we all know, OCP is not always (ever?) real world.

    Any more thoughts appreciated.

    Nick

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