十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
/*
OPNAME:指长时间执行的操作名.如:Table Scan
TARGET:被操作的object_name. 如:tableA
TARGET_DESC:描述target的内容
SOFAR:这个是需要着重去关注的,表示已要完成的工作数,如扫描了多少个块。
TOTALWORK:指目标对象一共有多少数量(预计)。如块的数量。
UNITS:
START_TIME:进程的开始时间
LAST_UPDATE_TIM:最后一次调用set_session_longops的时间
TIME_REMAINING: 估计还需要多少时间完成,单位为秒
ELAPSED_SECONDS:指从开始操作时间到最后更新时间
CONTEXT:
MESSAGE:对于操作的完整描述,包括进度和操作内容。
USERNAME:与v$session中的一样。
SQL_ADDRESS:关联v$sql
SQL_HASH_VALUE:关联v$sql
QCSID:主要是并行查询一起使用。
*/
SELECT V.SQL_ID,
USERNAME,
SID,
OPNAME,
ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS "执行进度百分比",
TIME_REMAINING "估计剩余时间(秒)",
SQL_TEXT,
A.ELAPSED_SECONDS "执行时间(秒)",
A.START_TIME "执行开始时间",
A.TOTALWORK "总数(块block)",
A.SOFAR "已完成数(块block)",
A.SOFAR / A.ELAPSED_SECONDS "每秒扫描数(块block)"
FROM V$SESSION_LONGOPS A, V$SQL V
WHERE 1 = 1
--AND TIME_REMAINING <> 0
AND SQL_ADDRESS = ADDRESS
AND SQL_HASH_VALUE = HASH_VALUE
ORDER BY A.ELAPSED_SECONDS DESC;
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
SQL_ID => '85tpcyjsu9mx6',
REPORT_LEVEL => 'ALL') AS REPORT
FROM DUAL;