这个视图的来源大致是这样的:
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;