Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Block prefetching confusion

unknown-879931Mar 11 2014 — edited Mar 17 2014

Hello Experts,

I have been reading Troubleshooting Oracle Performance by Christian Antognini for a while. In the part of optimizing joins, I came across a term that called "Block Prefetching". It is written the following thing about it.

"To improve the efficiency of nested loop joins, the database engine is able to take advantage of block prefetching. The goal of this optimization technique is to substitute several single-block physical reads performed on adjacent blocks, with one multiblock physical read. This is true for both indexes and tables."

In addition, He also mentions that looking at an access path cannot tell you whether the database engine will use prefetching.

As far as I know, multiblock I/O (as know as, the event db file scattered read) is used only for FULL TABLE SCAN and FAST FULL INDEX SCAN. The other types of reads should be single I/O (as known as, the event db file sequential read). So, for example, how come an index range scan can use multi block I/O?

I am just trying to understand the logic behind it. Can someone put light on this subject?

Regards

Charlie

This post has been answered by Dom Brooks on Mar 12 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 14 2014
Added on Mar 11 2014
26 comments
1,244 views