V$Session_LONGOPS

这个视图的来源大致是这样的:

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;

补充信息: 一篇非常好的解释文档。有些内容我之前也不知道。

X$ksulop, kernel service, user long operation. V$Session_LONGOPS 这个视图将显示超过六秒钟的操作。

前提条件:
1) Oracle优化器使用 CBO;
2) 数据对象已经收集了统计信息;
3) 初始化参数 TIMED_STATISTICS 或是 SQL_TRACE parameter 设定为 TRUE
例子:

SELECT opname, time_remaining, elapsed_seconds, MESSAGE
FROM v$session_longops
WHERE time_remaining > 0;