V$SESSION_LONGOPS 视图的用法

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:381

本帖最后由 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;

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】