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;