SELECT SS.USERNAME,
SS.SID,
SS.SERIAL#,
SS.MACHINE,
SS.PROGRAM,
SL.OPNAME,
SL.TARGET,
SL.START_TIME,
ROUND(SL.SOFAR * 100 / SL.TOTALWORK, 0) || '%' AS PROGRESS,
SL.TIME_REMAINING,
SL.ELAPSED_SECONDS,
S.SQL_ID,
S.SQL_TEXT
FROM V$SESSION SS, V$SESSION_LONGOPS SL, V$SQL S
WHERE SL.SID = SS.SID
AND SS.SQL_ADDRESS = S.ADDRESS
AND SS.SQL_HASH_VALUE = S.HASH_VALUE
AND SL.TIME_REMAINING <> 0;
---或者
SELECT SE.SID,
OPNAME, ---簡要說明
-- TARGET,---操作對象
-- TARGET_DESC,--目標對象說明
START_TIME, ---開始操作時間
LAST_UPDATE_TIME,
TIME_REMAINING, ---預計完成剩余秒
TRUNC(SOFAR / TOTALWORK * 100, 2) || '%' AS PCT_WORK, --SOFAR 迄今為止完成的工作量,TOTALWORK 總工作量
ELAPSED_SECONDS ELAPSED, ---從操作開始總花費時間(秒)
ROUND(ELAPSED_SECONDS * (TOTALWORK - SOFAR) / SOFAR) REMAIN_TIME,
SQL_TEXT
FROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SE
WHERE SL.SQL_HASH_VALUE = SA.HASH_VALUE
AND SL.SID = SE.SID
AND SOFAR != TOTALWORK
ORDER BY START_TIME;