学习动态性能表(10)--v$session_longops

学习动态性能表

第十篇--V$SESSION_LONGOPS  2007.6.7

本视图显示运行超过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

时间: 2024-08-14 18:06:36

学习动态性能表(10)--v$session_longops的相关文章

学习动态性能表(19)--v$undostat

学习动态性能表 第19篇--V$UNDOSTAT  2007.6.14 本视图监控当前实例中undo空间以及事务如何运行.并统计undo空间开销,事务开销以及实例可用的查询长度. V$UNDOSTAT中的常用列 Endtime:以10分钟为间隔的结束时间 UndoBlocksUsed:使用的undo块总数 TxnConcurrency:事务并发执行的最大数 TxnTotal:在时间段内事务执行总数 QueryLength:查询长度的最大值 ExtentsStolen:在时间段内undo区必须从一

学习动态性能表(2)--v$sesstat

学习动态性能表 第二篇--v$sesstat  2007.5.25 按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计. 类似于v$sysstat,该视图存储下列类别的统计: 事件发生次数的统计,如用户提交数. 数据产生,存取或者操作的total列(如:redo size) 执行操作所花费的时间累积,例如session CPU占用(如果TIMED_STATISTICS值为true) 注意: 如果初始参数STATISTIC

学习动态性能表(6)--v$session_wait&amp;v$session_event

学习动态性能表 第六篇-(1)-V$SESSION_WAIT  2007.5.30 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向. V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录. V$SESSION_WAIT中的常用列   SID: session标识 EVENT: session当前等待的事

学习动态性能表(7)--v$process

学习动态性能表 第七篇--V$PROCESS  2007.5.30 本视图包含当前系统oracle运行的所有进程信息.常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系.在某些情况下非常有用: 如果数据库瓶颈是系统资源(如:cpu,内存),并且占用资源最多的用户总是停留在某几个服务进程,那么进行如下诸项: 找出资源进程 找出它们的session,你必须将进程与会话联系起来. 找出为什么session占用了如此多的资源 SQL跟踪文件名是基于服务进程的操作系统进程

学习动态性能表(9)--v$filestat

学习动态性能表 第九篇--V$FILESTAT  2007.6.5 本视图记录各文件物理I/O信息.如果瓶颈与I/O相关,可用于分析发生的活动I/O事件.V$FILESTAT显示出数据库I/O的下列信息(不包括日志文件): l  物理读写数 l  块读写数 l  I/O读写总耗时 以上数值自实例启动即开始记录.如果获取了两个快照,那么二者之间的差异即是这一时间段内活动I/O统计. V$FILESTAT中的常用列:   l  FILE#:文件序号: l  PHYRDS:已完成的物理读次数: l 

学习动态性能表(14)--v$parameter&amp;v$system_parameter

学习动态性能表 第14篇--V$PARAMETER&V$SYSTEM_PARAMETER  2007.6.11 这两个视图列出的各参数项名称以及参数值.V$PARAMETER显示执行查询的session的参数值.V$SYSTEM_PARAMETER视图则列出实例的参数值. 例如,下列查询显示执行查询的session的SORT_AREA_SIZE参数值: SELECT value FROM V$PARAMETER WHERE name = 'sort_area_size'; 呵呵,可能有朋友还是不

学习动态性能表(15)--v$rollstat

学习动态性能表 第15篇--V$ROLLSTAT  2007.6.12 本视图自启动即保持并记录各回滚段统计项.在学习本视图之前,我们先来了解一下回滚段(rollback segment)的相关概念: 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的作用 1.事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在

学习动态性能表(13)--v$open_cursor

学习动态性能表 第13篇--V$OPEN_CURSOR  2007.6.8 本视图列出session打开的所有cursors,很多时候都将被用到,比如:你可以通过它查看各个session打开的cursor数. 当诊断系统资源占用时,它常被用于联接v$sqlarea和v$sql查询出特定SQL(高逻辑或物理I/O).然后,下一步就是找出源头.在应用环境,基本都是同一类用户登陆到数据库(在V$SQLAREA中拥有相同的PARSING_USER_ID),而通过这个就可以找出它们的不同.V$SQLARE

学习动态性能表(17)--v$segstat&amp;v$segment_statistics

学习动态性能表 第17篇-(1)-V$SEGSTAT  2007.6.13 本视图实时监控段级(segment-level)统计项,支持oracle9ir2及更高版本 V$SEGSTAT中的常用列 TS#:表空间标识 OBJ#:字典对象标识 DATAOBJ#:数据对象标识 STATISTIC_NAME:统计项名称 STATISTIC#:统计项标识 VALUE:统计项值 V$SEGSTAT中的连接列 Column                              View