v$session_longops

This view displays the status of various operations that run for longer than 6 seconds (in absolute time). These operations currently include many backup and recovery functions, statistics gathering, and query execution, and more operations are added for every Oracle release.

To monitor query execution progress, you must be using the cost-based optimizer and you must:

    Set the TIMED_STATISTICS or SQL_TRACE parameter to true

    Gather statistics for your objects with the ANALYZE statement or the DBMS_STATS package

--模拟一下
SQL> create table long_ as select level lv,rownum rn from dual connect by level<10000000;

表已创建。

SQL> insert into long_ select level lv,rownum rn from dual connect by level<10000000;

已创建9999999行。

SQL> commit;

提交完成。

SQL> insert into long_ select level lv,rownum rn from dual connect by level<10000000;

已创建9999999行。

SQL> commit;

提交完成。

SQL> insert into long_ select level lv,rownum rn from dual connect by level<10000000;

已创建9999999行。

SQL> commit;

提交完成。

SQL> select count(*) from long_;

  COUNT(*)
----------
  39999996

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
 TIMESTAMP                                          DATE
 TIME_REMAINING                                     NUMBER
 ELAPSED_SECONDS                                    NUMBER
 CONTEXT                                            NUMBER
 MESSAGE                                            VARCHAR2(512)
 USERNAME                                           VARCHAR2(30)
 SQL_ADDRESS                                        RAW(4)
 SQL_HASH_VALUE                                     NUMBER
 SQL_ID                                             VARCHAR2(13)
 QCSID                                              NUMBER

SQL> col sid for 99999
SQL> col opname for a20
SQL> col sofar for 9999999999
SQL> col totalwork for 9999999999
SQL> col units for a20
SQL> col sql_hash_value for 999999999999
SQL> col sql_id for a15
SQL> set linesize 200
--v$session_longops中记录了这次全表扫描操作
SQL> select sid,opname,sofar,totalwork,units,sql_hash_value,sql_id from v$session_longops where sql_id is not null;

   SID OPNAME                     SOFAR   TOTALWORK UNITS                SQL_HASH_VALUE SQL_ID
------ -------------------- ----------- ----------- -------------------- -------------- ---------------
   145 Table Scan                 92908       92908 Blocks                   1268759093 gw2gzt55tzfjp

--找出sql
SQL> select a.sql_text from v$sqlarea a,v$session_longops b where b.sql_id=a.sql_id;

SQL_TEXT
-------------------------------------------------------------------------------------------------------

select count(*) from long_

v$session_longops.START_TIME字段代表操作开始时间。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值