I've known about this but it got me thinking: When Oracle determines it needs a multiblock read doesn't it have to calculate eight hashes (assuming multiblock_read=8) and probe each of the lru hash chains in order to determine if the block is in the cache or not? Isn't this a lot of overhead? Why not just read all 8 blocks and just handle the colision when it happens? It seems to me a single 8 block read would be more efficient than say a 4-block read and a 3-block read. S- On Tue, 24 May 2005, Cary Millsap wrote: > It's because: > > 1) A single-block read is never a 'db file scattered read'. > 2) Oracle will never PIO a block that's already in the buffer cache. > > My guess is that blocks 90:145799 and 90:145801 were in the database buffer > cache, but 90:145800 wasn't. > > > Cary Millsap > Hotsos Enterprises, Ltd. > http://www.hotsos.com > * Nullius in verba * > > Visit www.hotsos.com for curriculum and schedule details... > > > -----Original Message----- > From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] > On Behalf Of Khemmanivanh, Somckit > Sent: Friday, May 20, 2005 11:36 AM > To: paul.baumgartel@xxxxxxxxx; Oracle-L > Subject: RE: sequential read on full-table scan? > > > You're not alone, I saw this weirdness in a recent 10046 trace, observe: > > WAIT #40: nam=3D'db file sequential read' ela=3D 53 p1=3D90 p2=3D145793 = > p3=3D1 > WAIT #40: nam=3D'db file sequential read' ela=3D 50 p1=3D90 p2=3D145798 = > p3=3D1 > WAIT #40: nam=3D'db file sequential read' ela=3D 55 p1=3D90 p2=3D145800 = > p3=3D1 > WAIT #40: nam=3D'db file scattered read' ela=3D 74 p1=3D90 p2=3D145805 = > p3=3D2 > WAIT #40: nam=3D'db file scattered read' ela=3D 88 p1=3D90 p2=3D145832 = > p3=3D2 > WAIT #40: nam=3D'db file sequential read' ela=3D 85 p1=3D92 p2=3D121800 = > p3=3D1 > WAIT #40: nam=3D'db file sequential read' ela=3D 44 p1=3D92 p2=3D121802 = > p3=3D1 > > My MBRC is 8. Also why would it switch from sequential to scattered and > back again in the middle of the trace? > > Hmmm, thinking about this, could this be because of parallel? If so, you > can ignore my message... > > Thanks!=20 > > -----Original Message----- > From: oracle-l-bounce@xxxxxxxxxxxxx > [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Paul Baumgartel > Sent: Friday, May 20, 2005 9:24 AM > To: Oracle-L > Subject: sequential read on full-table scan? > > > I am tracking a process that's exhibiting what I consider odd > behavior. This is 9.2.0.4.0 on Windows. > > A stored procedure is executing a loop in which it performs a cursor > fetch, then updates the same table based on data in the fetch: > > > SELECT SUM(OPTIONS_VESTED) SUM_VESTED,SUM(ACTUAL_FORFEITURE) > SUM_FORFEITED FROM OE_LINEITEM_RPT WHERE GRANT_DT =3D3D :b1 AND > PLAN_ID =3D3D :b2 AND PLAN_SORT =3D3D:b3 AND OPT_PRC =3D3D :b4 AND > EXPIRATION_DT =3D3D :b5 AND FAS123_QUAL_CODE =3D3D :b6 AND RUNTIME_ID = > =3D3D > :b7=3D > -- > //www.freelists.org/webpage/oracle-l > -- Stephen Rospo Principal Software Architect Vallent Corporation (formerly Watchmark-Comnitel) Stephen.Rospo@xxxxxxxxxxx (425)564-8145 This email may contain confidential information. If you received this in error, please notify the sender immediately by return email and delete this message and any attachments. Thank you. -- //www.freelists.org/webpage/oracle-l