Obter um relatório do SQL Monitor (SQL longo em execução ou concluído)
OracleDesempenhoComando
-- 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 OFFO que faz
O Real-Time SQL Monitoring mostra, para cada passo do plano de execução de um SQL longo ou paralelo, as linhas reais, o tempo decorrido, o uso de memória/temp e a atividade do ASH; você pode acompanhar o progresso enquanto o SQL ainda roda.
Quando usar
Ao perguntar se uma consulta de batch/relatório está travada e quanto falta, para análise da distribuição de consulta paralela (PX skew) e para encontrar diferenças entre linhas estimadas (E-Rows) e reais.
Atenção
Exige a licença do Tuning Pack (o Diagnostics Pack é pré-requisito). Por padrão só são monitorados SQL que consomem 5 s de CPU/I-O ou rodam em paralelo; use o hint /*+ MONITOR */ para os demais. Planos muito grandes (_sqlmon_max_planlines, padrão 300) não são monitorados. As entradas ficam em memória por tempo limitado; no 12c+ relatórios mais antigos também estão disponíveis em DBA_HIST_REPORTS.
Relacionados
- Tirar um snapshot do AWR e gerar um relatório AWR entre dois snapshots
- Relatório AWR diff (compare period) entre dois períodos
- Principais wait events e principais SQL do ASH nos últimos minutos
- Executar uma análise ADDM e obter seu relatório
- Habilitar/desabilitar o trace 10046 de uma sessão e resumir com TKPROF
- Mostrar o plano de execução real com estatísticas de row source (ALLSTATS LAST)