Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1244512
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

2013年(350)

分类: Oracle

2013-04-24 11:23:49

学习动态性能表(一)--v$sysstat
http://junsansi.itpub.net/post/29894/291051

学习动态性能表(二)--v$sesstat
http://junsansi.itpub.net/post/29894/291243

学习动态性能表(三)--v$sql&v$sql_plan
1.http://junsansi.itpub.net/post/29894/291651
2.http://junsansi.itpub.net/post/29894/291652

学习动态性能表(四)--v$sqltext&v$sqlarea
1.http://junsansi.itpub.net/post/29894/291654
2.http://junsansi.itpub.net/post/29894/291656

学习动态性能表(五)--v$session
http://junsansi.itpub.net/post/29894/292372

学习动态性能表(六)--v$session_wait&v$session_event
1.http://junsansi.itpub.net/post/29894/292373
2.http://junsansi.itpub.net/post/29894/292375

学习动态性能表(七)--v$process
http://junsansi.itpub.net/post/29894/292558

学习动态性能表(八)--v$lock&v$locked_object
1.http://junsansi.itpub.net/post/29894/292816
2.http://junsansi.itpub.net/post/29894/292819
3.http://junsansi.itpub.net/post/29894/292825

学习动态性能表(九)--V$FILESTAT
http://junsansi.itpub.net/post/29894/293209


学习动态性能表第十篇--V$SESSION_LONGOPS

本视图显示运行超过6秒的操作的状态。包括备份,恢复,统计信息收集,查询等等。

要监控查询执行进展状况,你必须使用cost-based优化方式,并且:
设置TIMED_STATISTICS或SQL_TRACE参数值为true。
通过ANALYZE或DBMS_STATS数据包收集对象统计信息。

你可以通过DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS过程添加application-specific长运行操作信息到本视图。关于DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS的更多信息可以浏览:Oracle Supplied PL/SQL Packages and Types Reference。

V$SESSION_LONGOPS列说明

SID:Session标识
SERIAL#:Session串号
OPNAME:操作简要说明
TARGET:操作运行所在的对象
TARGET_DESC:目标对象说明
SOFAR:至今为止完成的工作量
TOTALWORK:总工作量
UNITS:工作量单位
START_TIME:操作开始时间
LAST_UPDATE_TIME:统计项最后更新时间
TIME_REMAINING:预计完成操作的剩余时间(秒)
ELAPSED_SECONDS:从操作开始总花费时间(秒)
CONTEXT:前后关系
MESSAGE:统计项的完整描述
USERNAME:执行操作的用户ID
SQL_ADDRESS:用于连接查询的列
SQL_HASH_VALUE:用于连接查询的列
QCSID:

示例:
找一较大表,确认该表查询将超过6秒,哎呀让它快咱没把握,让它慢这可是我的强项啊~~
SQL> set timing on
SQL> create table ttt as select level lv,rownum rn from dual connect by level<10000000; --创建一个临时表
Table created
Executed in 19.5 seconds
SQL> commit;
Commit complete
Executed in 0 seconds
SQL> select * from (select * from ttt order by lv desc) where rownum<2; --执行一个费时的查询

LV RN
---------- ----------
9999999 9999999
Executed in 9.766 seconds --哈哈,成功超过6秒
SQL> select sid,opname,sofar,totalwork,units,sql_hash_value from v$session_longops; ----看看v$session_longops中是不是已经有记录了

SID OPNAME SOFAR TOTALWORK UNITS SQL_HASH_VALUE
---------- ---------------------------------------------------------------- ---------- ---------- -------------------------------- --------------
10 Table Scan 47276 47276 Blocks 2583310173
Executed in 0.047 seconds

SQL> select a.sql_text from v$sqlarea a,v$session_longops b where a.HASH_VALUE=b.SQL_HASH_VALUE; --通过hash_value联系查询出刚执行的查询语句。

SQL_TEXT
--------------------------------------------------------------------------------
select * from (select * from ttt order by lv desc) where rownum<2
Executed in 0.063 seconds


阅读(754) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~