Similarly, the operating system has its own block size. In Unix/Linux systems, that block size is configurable. In Windows systems, the OS block size is normally 2KB.
When Oracle needs to perform I/O, its smallest unit of I/O is the DB_BLOCK_SIZE as discussed above. But Oracle then passes that I/O request to the operating system. If the DB_BLOCK_SIZE is 2KB and the OS block size is 4BK, then every time Oracle requests 2KB of data to be read from disk, the OS reads 4KB. In this scenario, time is wasted reading the extra 2KB that Oracle does not need. So to properly configure the block sizes, we need to ensure that the DB_BLOCK_SIZE parameter is an integer multiple of the OS block size. If the ratio between these two block sizes is a floating point number, performance can be affected.
Dig Deeper on Oracle operating systems (Solaris, Open Solaris, Unbreakable Linux)
Related Q&A from Brian Peasland
Oracle expert Brian Peasland answers one reader's question about common pitfalls when connecting Oracle to outside programs. Continue Reading
One reader asks expert Brian Peasland a question about datafile sizes with the Oracle RMAN duplicate 10g command. Continue Reading
Managing parent table-child table relations in Oracle SQL environments is key to efficient programming. Continue Reading