Identificación de consultas que deben ajustarse con prioridad
La siguiente consulta identifica las 50 instrucciones que se han ejecutado en los últimos 7 días y que más tiempo demandaron. Puede utilizar los resultados para identificar las consultas que están tardando excesivamente. También puede identificar las consultas que se ejecutan con frecuencia (las que aparecen más de una vez en el conjunto de resultados). Estas consultas suelen ser prioritarias para realizar ajustes destinados a mejorar el rendimiento del sistema.
Esta consulta también proporciona un recuento de los eventos de alerta asociados a cada consulta identificada. Estas alertas proporcionan detalles que puede utilizar para mejorar el rendimiento de la consulta. Para obtener más información, consulte Revisión de alertas de consultas.
select trim(database) as db, count(query) as n_qry, max(substring (qrytext,1,80)) as qrytext, min(run_minutes) as "min" , max(run_minutes) as "max", avg(run_minutes) as "avg", sum(run_minutes) as total, max(query) as max_query_id, max(starttime)::date as last_run, sum(alerts) as alerts, aborted from (select userid, label, stl_query.query, trim(database) as database, trim(querytxt) as qrytext, md5(trim(querytxt)) as qry_md5, starttime, endtime, (datediff(seconds, starttime,endtime)::numeric(12,2))/60 as run_minutes, alrt.num_events as alerts, aborted from stl_query left outer join (select query, 1 as num_events from stl_alert_event_log group by query ) as alrt on alrt.query = stl_query.query where userid <> 1 and starttime >= dateadd(day, -7, current_date)) group by database, label, qry_md5, aborted order by total desc limit 50;