1. 首页 > ITPUX技术网 > 正文

V$SESSION_LONGOPS 视图的用法

本帖最后由 paulyi 于 2014-2-9 15:11 编辑

有时候我们在执行一个大的动作时,想知道进度怎么样,还需要多长时间来完成,而不是干等这个时候我们就可以借助V$SESSION_LONGOPS视图,比较详细的记录了些sql语句运行信息
但只记录超过六秒钟的操作,前提条件是:
1) Oracle优化器使用 CBO;
2) 数据对象已经收集了统计信息;
3) 初始化参数 TIMED_STATISTICS 或是 SQL_TRACE parameter 设定为 TRUE 例子:

V$SESSION_LONGOPS列说明

l SID:Session标识l SERIAL#:Session串号l OPNAME:操作简要说明l TARGET:操作运行所在的对象l TARGET_DESC:目标对象说明l SOFAR:至今为止完成的工作量l TOTALWORK:总工作量l UNITS:工作量单位l START_TIME:操作开始时间l LAST_UPDATE_TIME:统计项最后更新时间l TIME_REMAINING:预计完成操作的剩余时间(秒)l ELAPSED_SECONDS:从操作开始总花费时间(秒)l CONTEXT:前后关系l MESSAGE:统计项的完整描述l USERNAME:执行操作的用户IDl SQL_ADDRESS:用于连接查询的列l SQL_HASH_VALUE:用于连接查询的列l QCSID:
这个视图的来源大概是以下这个样子这个视图的来源大致是这样的:
SELECT inst_id,
ksulosno,
ksulosrn,
ksulopna,
ksulotna,
ksulotde,
ksulosfr,
ksulotot,
ksulouni,
TO_DATE(ksulostm, ‘MM/DD/RR HH24:MI:SS’, ‘NLS_CALENDAR=Gregorian’),
TO_DATE(ksulolut, ‘MM/DD/RR HH24:MI:SS’, ‘NLS_CALENDAR=Gregorian’),
DECODE(SIGN(ksulotot – ksulosfr),
-1,
TO_NUMBER(NULL),
DECODE(ksulosfr,
0,
TO_NUMBER(NULL),
ROUND(ksuloetm * ((ksulotot – ksulosfr) / ksulosfr)))),
ksuloetm,
ksuloctx,
ksulomsg,
ksulounm,
ksulosql,
ksulosqh,
ksuloqid
FROM x$ksulop;

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息