Back to Performance Tuning
sql
06 Long Running Operations
oracle_dba_perf_toolkit/daily_dba/06_long_running_operations.sql
Disclaimer:
This script is provided for educational and learning purposes. Review it carefully,
test in a non-production environment, confirm privileges, and validate impact before
using it in production.
SET PAGESIZE 200
SET LINESIZE 260
SET TRIMSPOOL ON
SET VERIFY OFF
SET FEEDBACK ON
SET TAB OFF
COLUMN session_id FORMAT A20
COLUMN opname FORMAT A40
COLUMN target FORMAT A45
COLUMN pct_done FORMAT 999.99
COLUMN elapsed_min FORMAT 999,999.99
COLUMN remaining_min FORMAT 999,999.99
SELECT
sl.inst_id || ':' || sl.sid || ',' || s.serial# session_id,
sl.opname,
sl.target,
ROUND(sl.sofar / NULLIF(sl.totalwork, 0) * 100, 2) pct_done,
ROUND(sl.elapsed_seconds / 60, 2) elapsed_min,
ROUND(sl.time_remaining / 60, 2) remaining_min
FROM
gv$session_longops sl
JOIN gv$session s
ON s.inst_id = sl.inst_id
AND s.sid = sl.sid
WHERE
sl.totalwork > 0
AND sl.sofar < sl.totalwork
ORDER BY
sl.time_remaining DESC;