|
This is a frequently asked question. First we need to make a distintion between OS space allocation block size (i.e. sector size, 512 bytes on most platforms) and I/O chunk size. Neverwinter_Newman may be describing the allocation block size. But what's relevant to Oracle performance is I/O chunk size, except for redo log writing, which matches allocation block size. You find the I/O chunk size by doing some I/O and watch sar /b output. Not sure what tool you can use on Windows. But you can always use Oracle's db file scan wait trace file to find Oracle's negotiated chunk size with OS.
I think it's possible you create a database with smaller db_block_size than the OS I/O chunk size. But if you do that, I/O would be bad because you ask for 2 I/O's and the OS has to do two I/O's while it actually CAN do the same work in one. So always use a bigger or the same-size db_block_size as OS I/O chunk size.
Since Oracle redo writing uses chunk size of 512 bytes (or 1k on HPUX and a few other OS'es), it's always better to place redo logfiles on raw partitions or equivalent (Veritas Quick I/O, Oracle ASM etc), bypassing filesystems.
Yong Huang
[ 本帖最后由 Yong Huang 于 2008-11-4 12:49 编辑 ] |
|