STL_QUERY - Amazon Redshift

STL_QUERY

Devuelve información acerca de la ejecución de la consulta de una base de datos.

nota

Las vistas STL_QUERY y STL_QUERYTEXT solo presentan información relacionada con consultas, no sobre otras utilidades y comandos de DDL. Para obtener una lista con información sobre todas las instrucciones ejecutadas por Amazon Redshift, también puede consultar las vistas STL_DDLTEXT y STL_UTILITYTEXT. Para obtener una lista completa de todas las instrucciones ejecutadas por Amazon Redshift, puede consultar la vista SVL_STATEMENTTEXT.

STL_QUERY es visible para todos los usuarios. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Algunos o todos los datos de esta tabla también están en la vista de monitoreo SYS SYS_QUERY_HISTORY. Los datos de la vista de monitoreo SYS están formateados para que sean más fáciles de usar y entender. Se recomienda utilizar la vista de monitoreo SYS para las consultas.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
userid integer ID del usuario que generó la entrada.
consulta integer ID de la consulta. La columna de consulta puede usarse para combinar otras vistas y tablas del sistema.
etiqueta character(320) Ya sea el nombre del archivo utilizado para ejecutar la consulta o una etiqueta definida con un comando SET QUERY_GROUP. Si la consulta no se basa en archivos o si no se establece el parámetro QUERY_GROUP, el valor del campo es default.
xid bigint ID de transacción.
pid integer ID de proceso. Por lo general, todas las consultas en una sesión se ejecutan en el mismo proceso, por lo que este valor suele permanecer constante si ejecuta una serie de consultas en la misma sesión. Después de determinados eventos internos, Amazon Redshift podría reiniciar una sesión activa y asignar un PID nuevo. Para obtener más información, consulte STL_RESTARTED_SESSIONS.
base de datos character (32) El nombre de la base de datos al que estaba conectado el usuario cuando se emitió la consulta.
querytxt character (4000) Texto real de la consulta para la consulta.
starttime Marca de tiempo Hora en UTC en que comenzó la consulta. El tiempo total incluye colas y ejecución. Con 6 dígitos de precisión para fracciones de segundo. Por ejemplo: 2009-06-12 11:29:19.131358.
endtime Marca de tiempo Hora en UTC en la que finalizó la consulta. El tiempo total incluye colas y ejecución. Con 6 dígitos de precisión para fracciones de segundo. Por ejemplo: 2009-06-12 11:29:19.131358.
aborted integer Si el sistema detuvo la consulta o el usuario la canceló, esta columna tendrá el valor 1. Si la consulta se ejecutó hasta terminarse (e incluso se devolvieron resultados al cliente), esta columna tendrá el valor 0. Si un cliente se desconecta antes de recibir los resultados, la consulta se marcará como cancelada (1), aunque se haya completado correctamente en el backend.
insert_pristine integer Indica si las consultas de escritura pueden o pudieron ejecutarse mientras que la consulta actual se ejecuta o ejecutaba: 1 = no se permiten consultas de escritura; 0 = se permiten las consultas de escritura. Esta columna está diseñada para ser utilizada en la depuración.
concurrency_scaling_status integer

Indica si la consulta se ejecutó en el clúster principal o en un clúster de escalado de simultaneidad. Los valores posibles son los siguientes:

0: se ejecutó en el clúster principal

1: se ejecutó en un clúster de escalado de simultaneidad

Un número mayor que 1: se ejecutó en el clúster principal

Consultas de ejemplo

La siguiente consulta enumera las cinco consultas más recientes.

select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)

La siguiente consulta devuelve el tiempo transcurrido en orden descendente para las consultas ejecutadas el 15 de febrero de 2013.

select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)

La siguiente consulta muestra el tiempo de cola y el tiempo de ejecución de las consultas. Las consultas con concurrency_scaling_status = 1 se ejecutaron en un clúster de escalado de simultaneidad. Todas las demás consultas se ejecutaron en el clúster principal.

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;