It seems that you are trying to gather details from an aggregate. Those
queries don't tell you how long the system has been up, or how many reads
actually took place. They also don't tell you how many blocks were read.
"qihua wu" <staywithpin@xxxxxxxxx>
Sent by: oracle-l-bounce@xxxxxxxxxxxxx
05/28/2008 05:45 AM
Please respond to staywithpin@xxxxxxxxx
From
"qihua wu" <staywithpin@xxxxxxxxx>
To
oracle-l <oracle-l@xxxxxxxxxxxxx>
cc
Subject
direct read is much faster than scattered read, is it reasonable?
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