direct path read这个等待事件表示Oracle读取数据块直接进入PGA,而非SGA中的Buffer Cache中。
SQL> select name,parameter1,parameter2,parameter3,wait_class from v$event_name where name='direct path read';
NAME PARAMETER1 PARAMETER2 PARAMETER3 WAIT_CLASS
-------------------- --------------- ---------- ---------- ------------------------------------------------------
direct path read file number first dba block cnt User I/O
p1:绝对文件号 p2:第一个数据块号 p3:总共读了多少块。
产生这个等待事件的原因大概有以下几种:
1.磁盘排序
2.并行查询
3.预读操作
在OLTP系统中如果该等待事件过于明显,通常的可能是磁盘排序造成的,应该找出在磁盘排序的SQL,对其优化。
direct path write这个等待事件表示Oracle直接从PGA写入到数据文件/临时文件。
p1:绝对文件号 p2:第一个数据块号 p3:总共读了多少块。
SQL> select name,parameter1,parameter2,parameter3,wait_class from v$event_name where name='direct path write';
NAME PARAMETER1 PARAMETER2 PARAMETER3 WAIT_CLASS
-------------------- --------------- ---------- ---------- ----------------------------------------------------------------
direct path write file number first dba block cnt User I/O
产生这个等待事件的原因大概有以下几种:
1.磁盘排序
2.直接路径加载
3.并行DML操作 ----注意 一个是并行查询,一个是并行DML