v$event_name event的定义

查询等待事件:v$session_wait,v$system_wait,v$session_wait_history

SELECT SID,EVENT FROM V$SESSION_WAIT;

查看各种事件的归类:

Select name,wait_class from v$event_name ;

db file sequential read :出现原因可能在多表连接中,表的连接顺序存在问题,没有正确使用驱动表;或者可能索引使用存在问题。

db file scattered read :可能和全表扫描或快速全索引扫描有关,大量此事件可能意味着应用问题或索引缺失。

查询全表扫描的对象:

SELECT DISTINCT object_name, object_owner

           FROM v$sql_plan p

          WHERE p.operation = 'TABLE ACCESS'

            AND p.options = 'FULL'

            AND object_owner = 'ANTICELLDA';

查询全索引扫描对象:

SELECT DISTINCT object_name, object_owner

           FROM v$sql_plan p

          WHERE p.operation = 'INDEX'

            AND p.options = 'FULL SCAN'

            AND object_owner = 'ANTICELLDA';

查询全表扫描的sql语句:

SELECT   sql_text

    FROM v$sqlteXt t, v$sql_plan p

   WHERE t.hash_value = p.hash_value

     AND p.operation = 'TABLE ACCESS'

     AND p.options = 'FULL'

ORDER BY p.hash_value, t.piece;

 

Direct path read/write:直接路径读/写,通常发生在Oracle直接读数据到PGA/PGA写数据到数据文件或临时文件,这个操作不经过SGADSS决策支持系统Decision Support System)系统中存在大量是正常的。OLTP联机事务处理on-line transaction processing)则意味着系统应用存在问题,导致大量的磁盘排序读取操作,临时表空间使用频繁。V$tempseg_usage, v$tempfile

 

Enqueue :队列等待,一种保护共享资源的锁定机制,如果此事件比较显著,需要进一步追踪哪个类别的锁定。常见的有ST,HW,TX,TM等。ST Enqueue用于空间管理和字典管理的表空间(DMT)的区间分配,在DMT中,典型的是uet$fet$数据字典的争用。

 

Latch free:闩锁释放等待,说明有进程正在等待某个latch 被释放。Latch 用于保护SGA 中共享内存结构,防止被多个用户同时访问。Latch通常是操作系统利用内存中的某个位置,通过设置变量为0或非0来表示latch 是否已经被取得。v$latch,latch分为 willing-to-wait,immediate。前者表示请求的latch不能立即得到,请求进程等待一段时间后再次发出请求,进程重复执行此过程直到得到latch。后者表示请求进程不会等待,而是继续执行下去。

对于willing-to-waitlatch,过程如下:

 

https://files.cnblogs.com/yifan268/latch.pdf 

查询长时间运行的事务,可能很多是全表扫描,注意opname

Select * from v$session_longops;

posted on 2008-07-30 17:23  Alex.Zhang  阅读(224)  评论(0编辑  收藏  举报