Notes in-line
Regards
Jonathan Lewis
http://www.jlcomp.demon.co.uk/faq/ind_faq.html The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html Cost Based Oracle: Fundamentals
http://www.jlcomp.demon.co.uk/appearances.html Public Appearances - schedule updated 10th Jan 2006
Is there likely to be a performance difference between the following two situations:
a) Your query reads 1000 rows packed into 10 blocks. All blocks are already in the buffer cache (no physical reads). No other transaction has updated the blocks.
b) Your query reads the same 1000 rows, but this time they are scattered over, say, 50 blocks. Again, all blocks are in cache. No other transaction has updated the blocks.
Case b results in more consistent gets. But the same number of rows are returned in either case. This question seems to boil down to "what's the overhead to a consistent get?"
Yes - (b) can result in more consistent gets, but it depends on (at least) the access path, fetch arraysize, and the ordering of the rows in the block (and the version of Oracle, and whether table-prefetching is enabled).
And, my own question that I'll is: do things change if another transaction has updated the blocks since your transaction began?
Best regards,
Jonathan Gennick --- Brighten the corner where you are http://Gennick.com * 906.387.1698 * mailto:jonathan@xxxxxxxxxxx
-- //www.freelists.org/webpage/oracle-l
-- //www.freelists.org/webpage/oracle-l