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语句进行优化了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了上面提到的视图,还有一些常用的性能视图: 1. V$STATNAME:列出了 Oracle 数据库中所有的统计信息名称,可以使用 SQL 语句 SELECT * FROM V$STATNAME; 查看。 2. V$SQL_PLAN:显示 SQL 语句的执行计划,例如执行计划、计划步骤等。可以使用 SQL 语句 SELECT * FROM V$SQL_PLAN; 查看。 3. V$SESSION_WAIT:显示当前会话等待事件的信息,例如等待事件名称、等待时间等。可以使用 SQL 语句 SELECT * FROM V$SESSION_WAIT; 查看。 4. V$SQL_PLAN_STATISTICS_ALL:显示 SQL 语句的执行计划的统计信息,例如 I/O 操作次数、 CPU 消耗、内存消耗等。可以使用 SQL 语句 SELECT * FROM V$SQL_PLAN_STATISTICS_ALL; 查看。 5. V$SQLSTATS:显示 SQL 语句的统计信息,例如执行次数、平均执行时间等。可以使用 SQL 语句 SELECT * FROM V$SQLSTATS; 查看。 6. V$SYSSTAT:显示系统统计信息,例如缓冲池命中率、 I/O 操作次数等。可以使用 SQL 语句 SELECT * FROM V$SYSSTAT; 查看。 7. V$ROLLSTAT:显示回滚段的统计信息,例如回滚段大小、使用情况等。可以使用 SQL 语句 SELECT * FROM V$ROLLSTAT; 查看。 8. V$SESSION_LONGOPS:显示长时间运行的操作信息,例如操作进度、估计完成时间等。可以使用 SQL 语句 SELECT * FROM V$SESSION_LONGOPS; 查看。 9. V$ASM_DISKGROUP_STAT:显示 ASM 磁盘组的统计信息,例如磁盘组大小、使用情况等。可以使用 SQL 语句 SELECT * FROM V$ASM_DISKGROUP_STAT; 查看。 总之,Oracle 数据库提供了很多性能视图,通过监控这些视图可以了解数据库的性能情况,找出系统的瓶颈并进行优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值