Oralce动态视图v$session_longops使用

主要是想使用v$session_longops来做一些针对全表扫描的优化。

通过v$session_longops视图来查找出一些消耗时间比较多的操作。

使v$session_longops可以查询之前,将参数TIMED_STATISTICS必须为TRUE

查询一些比较耗时的操作:

col opname format a10
col target format a10
col username format a10
select sid, serial#, opname, target, username, TO_CHAR(start_time, 'HH24:MI:SS') AS "START",
(sofar/totalwork)*100 AS PERCENT_COMPLETE
FROM v$session_longops;
在一个回话窗口中在表中插入大量数据,然后再另一个窗口中输入上面语句

查询结果如下:

       SID    SERIAL# OPNAME     TARGET     USERNAME   START    PERCENT_COMPLETE
---------- ---------- ---------- ---------- ---------- -------- ----------------
        60        340 Table Scan SYS.T      SYS        16:57:41              100
        60        340 Table Scan SYS.T      SYS        17:02:28              100
        60        340 Table Scan SYS.T      SYS        17:12:04              100

根据v$session_longops中的sql_address和sql_hash_value两个字段,和v$sql动态视图结合起来查看这些长时间操作的SQL语句。

select sql_text
from v$session_longops s, v$sql t
where s.sql_address=t.address and s.sql_hash_value=t.hash_value;
查询结果如下:

SQL_TEXT
--------------------------------------------------------------------------------
insert into t select * from t
insert into t select * from t
insert into t select * from t

然后就可以针对这些SQL语句进行优化了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值