ITPub博客

首页 > Linux操作系统 > Linux操作系统 > v$session_longops

v$session_longops

原创 Linux操作系统 作者:tolywang 时间:2011-06-08 08:23:39 0 删除 编辑

 

         很多时候数据库管理员需要监控数据中有哪些长时间运行的操作或者估算每个操作需要花费的时间。这有点类似windows进度条,事实是要真正做到100% 准确是不太现实的,计算机中几乎没有任何运算能够线性的运行。oracle也提供了动态性能视图v$session_longops来反映一些长时间运行 的操作。最基本的原则是超过6s的事务将会在视图记录中。但也并不是所有超过6s的事务都会记录,例如hash join会被记录,而nested loop join就不会出现在其中。这个地方有时候会有些困惑,事务时间超过6s也没有在v$session_longops中显示?

首先我们要明白的是:v$session_longops线性计算事务进度的(通常以读取的block为单位)而不计其它因素的影响,我们在估算事务时间需要考虑到其中的误差值。 通常记录的事务类型包括:Table scan,Index Fast Full Scan,hash join,sort/merge,sort/output等等,在每一个新的release版本,oracle都会加入新支持的事务类型。
在实际当中(以table scan为例)除了需要满足6s这个条件外,进入v$session_longops还需要一个附加条件:至少包含10000个database block。只有同时满足两个条件的table scan操作才会记录到视图中。当然不同的操作类型,条件可能不同。

应用程序也可以通过DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS定义自己的事务进度,写入v$session_longops。

另外需要注意的是v$session_longops反应的不一定是当前的session信息,可能需要结合v$session。v$session_longops中的条目会被自动重用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-697345/,如需转载,请注明出处,否则将追究法律责任。

上一篇: wait events
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13468830