oracle monitoring sql - ghdrako/doc_snipets GitHub Wiki
V$SESSSION_LONGOPS
select * from v$session_longops where time_remaining > 0;
V$SQL_MONITOR
- Ile rzeczywiście przetworzył wierszy (ROWS_PROCESSED)
- Ile czasów i zasobów już zużyto
- Jakie operacje (np. INSERT, TABLE ACCESS FULL) są aktywne
SELECT * FROM v$sql_monitor WHERE status = 'EXECUTING'; -- dla Enterprise Edition wersji 11g (z opcją monitoring) i pełniej od 12c+
- ROWS_PROCESSED - ile rekordow przetworzyl
V$SQL_PLAN_MONITOR
Wiecej szczegolow na poziomie kroków w planie zapytania - ile zostalo do zakoczenia
- sofar – ile już zrobiono
- totalwork – ile Oracle oszacował jako całość
- percent_done – ile % już wykonano
SELECT
sql_id,
operation_name,
sofar,
totalwork,
ROUND((sofar / NULLIF(totalwork, 0)) * 100, 2) AS percent_done,
start_time,
last_update_time
FROM v$sql_plan_monitor
WHERE status = 'EXECUTING';
Oracle nie zawsze wypełnia totalwork – tylko dla niektórych typów operacji (np. TABLE SCAN, INSERT, HASH JOIN).
Aby V$SQL_MONITOR
działał:
- Musi być włączony SQL Monitoring (automatycznie przy dużych zapytaniach lub wymuszony hintem
MONITOR
). - Masz licencję Oracle Enterprise Edition z Tuning Pack? → Wtedy masz pełne wsparcie.
DBMS_SQLTUNE.REPORT_SQL_MONITOR
Pełny raport HTML lub tekstowy