深入浅出Oracle学习笔记:等待事件

 

1.查询等待事件的几个动态视图

      v$session,v$session_wait,$vsession_wait_histroy,v$event_name,

      v$session_longops:记录了长时间(运行时间>6S)运行的事务,可能很多是全表扫描操作

      v$segment_statistics:找出物理读取显著的索引或者是表段

 

2.常见的几个等待事件

        1)。db file  sequential read(数据文件连续读取):可能表示在多表连接中,表的连接顺序存在问题;

                                                                  可能没有正确的使用驱动表;或者索引的使用存在问题;

               说明: 在大多数情况下,通过索引可以更快的获取记录;

                        但是在很多情况下,使用索引并不是最佳的选择,

                        比如读取较大表的大量数据,全表扫描可能比索引扫描更明显。

 

        2)。db file scattered read(数据文件离散读取):可能意味着应用问题 或者表索引缺失

 

        3)。 direct path read/write(直接路径读取): 最常见的原因是磁盘排序导致

               说明:如果系统存在过多的磁盘排序,会导致临时表空间操作频繁;这种情况,可以为不同用户分配不同的

                       临时表空间,使用多个临时文件,写入不同磁盘或者裸设备,以降低竞争。

                       或者可以适当增大pga_aggregate_target 以缩减磁盘排序对硬盘的写入。

 

        4)。日志文件相关等待

               log file switch,log file sync 等

 

         5)。Enqueue  (队列等待)

               是一种保护共享资源的锁定机制;该机制保护共享资源,以避免并发操作而损坏数据。

 

         6)。Latch free(等待闩锁释放)

                说明有进程正在等待某个latch 被释放

 

你可能感兴趣的:(oracle学习)