监控运行时间较长的sql语句

如果发现有一条sql语句执行了很长的时间,可以监控它的处理过程,并查明它何时能执行完成。
通过在v$session_longops数据字典视图中,查看运行时间很长的查询信息,可以估算出查询完成的时间。
来看看这个视图的结构:
SQL> desc v$session_longops
名称 是否为空? 类型
----------------------------------------- -------- ----------------

SID NUMBER
SERIAL# NUMBER
OPNAME VARCHAR2(64)
TARGET VARCHAR2(64)
TARGET_DESC VARCHAR2(32)
SOFAR NUMBER
TOTALWORK NUMBER
UNITS VARCHAR2(32)
START_TIME DATE
LAST_UPDATE_TIME DATE
TIME_REMAINING NUMBER
ELAPSED_SECONDS NUMBER
CONTEXT NUMBER
MESSAGE VARCHAR2(512)
USERNAME VARCHAR2(30)
SQL_ADDRESS RAW(4)
SQL_HASH_VALUE NUMBER
QCSID NUMBER




其中SID和SERIAL#是与v$session中的匹配的,
OPNAME:指长时间执行的操作名.如:Table Scan
TARGET:被操作的object_name. 如:tableA 
TARGET_DESC:描述target的内容 
SOFAR:这个是需要着重去关注的,表示已要完成的工作数,如扫描了多少个块。
TOTALWORK:指目标对象一共有多少数量(预计)。如块的数量。
UNITS: 
START_TIME:进程的开始时间
LAST_UPDATE_TIM:最后一次调用set_session_longops的时间
TIME_REMAINING: 估计还需要多少时间完成,单位为秒
ELAPSED_SECONDS:指从开始操作时间到最后更新时间
CONTEXT:
MESSAGE:对于操作的完整描述,包括进度和操作内容。 
USERNAME:与v$session中的一样。
SQL_ADDRESS:关联v$sql
SQL_HASH_VALUE:关联v$sql
QCSID:主要是并行查询一起使用。

SQL> insert into test select * from test ;


已创建898432行

打开另一个会话,可使用以下脚本来观察之前那个会话所作的操作的执行状态.


SQL> select b.*
2 from v$session a, v$session_longops b
3 where a.sid=b.sid
4 and a.serial#=b.serial#
5 /


SID SERIAL# OPNAME TARGET SOFAR TOTALWORK UNITS START_TIME LAST_UPDATE_TIME TIME_REMAINING ELAPSED_SECONDS CONTEXT MESSAGE 
---- ---------- -------------- --------- ------ ---------- -------- ----------- ---------------- -------------- --------------- ---------- -----------------------------------------------------
10 74 Table Scan AA.TEST 6623 12389 Blocks 2015-9-7 2: 2015-9-7 2:52:03 30 34 0 Table Scan: AA.TEST: 6623 out of 12389 Blocks done 


也可以利用这个语句:
select username,target,sofar blocks_read,totalwork total_blocks,
round(time_remaining/60) minutes from v$session_longops  where sofar <> totalwork and username = '';
要想通过v$session_longops监控一个查询,需要满足以下条件。
1)查询必须至少运行六秒钟以上
2)所访问表的数据块数必须大于10000块
3)必须设置了time_statistics或者打开了sql_trace
4)查询中的对象必须已经通过dbms_stats或者analyze进行分析
v$session_longops视图中包含了select语句,dml语句,ddl语句等信息。

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

转载于:http://blog.itpub.net/30430420/viewspace-1805674/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值