direct path read
1.原理:
这个等待事件发生在会话将数据块直接读取到PGA当中,而不是SGA中的情况,这些被读取的数据通常是这个会话私有的数据,所以不需要放到SGA作为共享数据,因为这样做没有意义。这些数据通常是来自与临时段上的数据,比如一个会话中SQL的排序数据,并行执行过程中间产生的数据,以及Hash Join,merge join产生的排序数据,因为这些数据只对当前的会话的SQL操作有意义,所以不需要放到SGA当中。
2.产生原因:
当发生direct path read等待事件时,意味着磁盘上有大量的临时数据产生,比如排序,并行执行等操作。 或者意味着PGA中空闲空间不足。
3.措施:
一个方向是增大PGA等手段,一个方向是减少读取IO量或判断是否通过缓冲区读的方式更加高效。
direct path write
1.发生原因:
发生在oracle直接从PGA写数据到数据文件或临时文件,这个操作可以绕过SGA。在磁盘排序中最为常见。对于这种情况应该找到操作最为频繁的数据文件(如果是排序,很有可能是临时文件),分散负载。
2.措施
减少IO写入规模。