direct read is much faster than scattered read, is it reasonable?

  • From: "qihua wu" <staywithpin@xxxxxxxxx>
  • To: oracle-l <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 28 May 2008 17:45:59 +0800

I executed these sql on my database:

SQL>  select time_waited_micro/total_waits/1000000 from v$system_event
where event_id in (select event_id from v$event_name where name='direct path
read');

TIME_WAITED_MICRO/TOTAL_WAITS/1000000
-------------------------------------
                           .000503342

SQL> select time_waited_micro/total_waits/1000000 from v$system_event  where
event_id in (select event_id from v$event_name where name='db file scattered
read');

TIME_WAITED_MICRO/TOTAL_WAITS/1000000
-------------------------------------
                           .001818803



We could see:  to access one block using *scattererd read*,  it will take *1.8
ms*,  but when access one block using "*direct path read*", it only takes *
0.5ms*.  How could direct path read much much quicker than scatterer read?
Isn't the scattered read the fastest method to access data block?  Our
system uses SAN storage, and SAN could pre-fetch to speed-up the block
access. But I think it pre-fetch will help both scattered read and direct
path read, am I right?

Thanks,
Qihua

Other related posts: