Obtenir un rapport SQL Monitor (SQL long en cours ou terminé)
OraclePerformancesCommande
-- List monitored SQL (longer than 5 s, parallel, or /*+ MONITOR */):
SELECT sql_id, status, username, sql_exec_id,
TO_CHAR(sql_exec_start,'YYYY-MM-DD HH24:MI:SS') AS exec_start,
ROUND(elapsed_time/1e6,1) AS elapsed_s,
ROUND(cpu_time/1e6,1) AS cpu_s,
buffer_gets, px_servers_allocated
FROM v$sql_monitor
ORDER BY sql_exec_start DESC
FETCH FIRST 20 ROWS ONLY;
-- TEXT report (actual rows, time and activity per plan line):
SET LONG 10000000 LONGCHUNKSIZE 10000000 LINESIZE 300 PAGESIZE 0 TRIMSPOOL ON
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
sql_id => '<sql_id>',
type => 'TEXT',
report_level => 'ALL') AS report
FROM dual;
-- Shareable HTML (interactive in a browser):
SPOOL /tmp/sqlmon_<sql_id>.html
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
sql_id => '<sql_id>', type => 'ACTIVE', report_level => 'ALL')
FROM dual;
SPOOL OFFCe que fait la commande
Real-Time SQL Monitoring affiche, pour chaque étape du plan d'exécution d'un SQL long ou parallèle, les lignes réelles, le temps écoulé, l'utilisation mémoire/temp et l'activité ASH ; vous pouvez suivre la progression pendant que le SQL s'exécute encore.
Quand l'utiliser
Pour savoir si une requête de batch/rapport est bloquée et ce qu'il reste à faire, pour analyser la répartition d'une requête parallèle (PX skew), et pour trouver les écarts entre lignes estimées (E-Rows) et réelles.
Attention
Exige la licence Tuning Pack (Diagnostics Pack est un prérequis). Par défaut, seuls les SQL consommant 5 s de CPU/E-S ou s'exécutant en parallèle sont surveillés ; utilisez le hint /*+ MONITOR */ pour les autres. Les plans très volumineux (_sqlmon_max_planlines, 300 par défaut) ne sont pas surveillés. Les entrées restent en mémoire pendant une durée limitée ; en 12c+, les rapports plus anciens sont aussi disponibles dans DBA_HIST_REPORTS.
Voir aussi
- Prendre un snapshot AWR et générer un rapport AWR entre deux snapshots
- Rapport AWR diff (compare period) entre deux périodes
- Principaux événements d'attente et principaux SQL depuis ASH pour les dernières minutes
- Lancer une analyse ADDM et obtenir son rapport
- Activer/désactiver la trace 10046 pour une session et la résumer avec TKPROF
- Afficher le plan d'exécution réel avec les statistiques row source (ALLSTATS LAST)