### Guidelines for DB_BLOCK_SIZE

PURPOSE   To give some guidelines for the setting of the parameter DB_BLOCK_SIZE.   SCOPE & APPLICATION   To increase understanding of the issues related to the setting of the    parameter DB_BLOCK_SIZE.    Guidelines for DB_BLOCK_SIZE: =============================  The setting of the parameter DB_BLOCK_SIZE depends on the type of data you are  looking at, the application and implementation.   The main considerations are as follows:   1. Balance with Operating System Block Size     For good performance, Oracle Block size should be made equal to or a     multiple of the operating system blocksize. If you do not do this then the     operating system may be doing many reads and writes to process Oracle     blocks. This is inefficient and wastes CPU cycles.      If your rows are small and you use a large blocksize, when you fetch a block    you may get lots of rows that you are (probably) not interested in. The     operating system has to do more work to get the row(s) that you are     interested in.      On the other hand, if you were interested in the extra rows then altough     this may waste CPU on the initial fetch then you have already loaded the     block containing the rows in to the buffer cache.      Larger blocks also mean more rows cached for the same number of     DB_BLOCK_BUFFERS (taking up more memory).    2. Index Branches     Larger Oracle block sizes may give better index balancing with more rows in     each branch.   3. Locking/Block Contention     Remember that with more processes looking at the same block you are more     likely to get block contention.   4. Row Length      If your rows are comparatively large then you may need a large blocksize to     (possibly) prevent chaining.

0 0