2009年5月18日月曜日

Oracle:db_block_size

db_block_size


Operating system block size. Good performance can be achieved by ensuring that the Oracle block size is equal to or a multiple of the operating system block size. If this is not the case, the OS may end up performing extra reads and writes during the processing of Oracle blocks, resulting in wasted CPU cycles.See finding block size
♦ Size of buffer cache used. Larger database block size means that you are using up more memory for the same number of db_block_buffers. This also means that more rows are cached. If your rows are small and you use a large block size, a block fetch will result in a lot of rows being fetched (and you may not be interested in all of them). The end result is that the OS is doing more work to fetch things that you don't need. On the other hand, if the row length is large, a large block size may prevent chaining.
♦ Balancing of index branches. Large Oracle block sizes can result in better index balancing, as there are more rows in each branch. A bigger block size means more space for key storage in the branch nodes of B-tree indexes, which reduces index height and improves the performance of indexed queries.


>See finding block size
# df -g | grep "block size" -- to display O/S block size in bytes in Solaris. For Linux run dumpe2fs ( must be root ).
# grep /usr/include/sys/param.h file (NOTE 1024 is the default for DEV_BSIZE)

0 件のコメント: