Hi,
>> I see a significant reduction in consistent gets with the increase in arraysize from 10 to 1000 (as expected).
This is an interesting issue! However, it's an illusion, since arraysize does not determine "real" I/O, which remains constant.
The "set arraysize" in SQL*Plus governs the number of rows Oracle will fetch before shipping them back to the client.
Here is a test of the SQL*PLus arraysize:
http://www.dba-oracle.com/oracle_tips_sql_plus_arraysize.htmSee here:
http://viveklsharma.blogspot.com/2007/11/c...-gets-myth.htmlQUOTE
These clearly shows the way Oracle Optimizer measure Consistent Gets and the effect of Arraysize on this. Also, increasing the value of arraysize will have an impact on the performance but, beaware, do not increase this to a higher value.
Consistent Gets are not a measure of number of blocks that are read into the cache but number of times, a block was read into the PGA. A block is read only once in the cache and touched multiple times. Our example above showed that with arraysize of 15, an 8k block was read once but was touched 3 times and hence had a 3 consistent gets for 1 block. This does not mean 3*8192 worth of data. The data was read only once.
**********************************************************
>> for joins arraysize does not have any impact on performance?
The arraysize WILL have an impact for joins that perform full-table scans (hash joins, merge joins). . . .
Why is this important? In production you cannot use SQL*Plus anyway . . .