DB_FILE_MULTIBLOCK_READ_COUNT
is one of the parameters you can use to minimize I/O during table scans. It specifies the maximum number of blocks read in one I/O operation during a sequential scan. The total number of I/Os needed to perform a full table scan depends on such factors as the size of the table, the multiblock read count, and whether parallel execution is being utilized for the operation.The maximum value is the operating system's maximum I/O size expressed as Oracle blocks
((max I/O size)/
DB_BLOCK_SIZE
).
According to Oracle, this is the formula for setting db_file_multiblock_read_count:
max I/O chunk sizeIf you set this parameter to a value greater than the maximum, Oracle uses the maximum.
DB_FILE_MULTIBLOCK_READ_COUNT = ------------------------------------
db_block_size
The setting of db_file_multiblock_read_count dictates how many I/O calls will be required to complete a table scan. For example, if db_file_multiblock_read_count is set to 32, and the Oracle block size = 8k, then a sequential scan of a 256k table can be read in one pass. This improves the speed of the table scan and overall query performance.
The cost of setting db_file_multiblock_read_count too high is that the server will consume additional memory and may cause full table scans to be chosen by the Cost-Based Optimizer more frequently.
It does NOT "dictate how many I/O calls will be required to complete a table scan.”
Comments