STL_NESTLOOP - Amazon Redshift

STL_NESTLOOP

Analiza los pasos de ejecución de combinaciones de bucle anidado de las consultas.

STL_NESTLOOP 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.

nota

STL_NESTLOOP solo contiene consultas que se ejecutan en los clústeres aprovisionados principales. No contiene consultas que se ejecutan en clústeres de escalado simultáneo ni en espacios de nombres sin servidor. Para acceder a los planes de explicación de consultas ejecutadas tanto en los clústeres principales como en los clústeres de escalado simultáneo y en los espacios de nombres sin servidor, le recomendamos que utilice la vista de supervisión de SYS SYS_QUERY_DETAIL. Los datos de la vista de monitoreo SYS están formateados para que sean más fáciles de usar y entender.

Columnas de la tabla

Nombre de la columna Tipo de datos: Descripción
userid entero ID del usuario que generó la entrada.
consulta entero ID de la consulta. La columna de consulta puede usarse para combinar otras vistas y tablas del sistema.
slice entero Es el número que identifica el sector donde se estaba ejecutando la consulta.
segment entero Número que identifica el segmento de la consulta.
paso entero Paso de la consulta que se ejecutó.
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.
tasknum entero Es el número del proceso de tarea de la consulta que se asignó para ejecutar el paso.
rows bigint Es la cantidad total de filas que se procesaron.
tbl entero ID de la tabla.
checksum bigint Esta información es solo para uso interno.

Consultas de ejemplo

Como la siguiente consulta no contempla la combinación con la tabla CATEGORY, produce un producto cartesiano parcial, que no es recomendable. Aquí se muestra para ilustrar un bucle anidado.

select count(event.eventname), event.eventname, category.catname, date.caldate from event, category, date where event.dateid = date.dateid group by event.eventname, category.catname, date.caldate;

La siguiente consulta muestra los resultados de la consulta anterior en la vista STL_NESTLOOP.

select query, slice, segment as seg, step, datediff(msec, starttime, endtime) as duration, tasknum, rows, tbl from stl_nestloop where query = pg_last_query_id();
query | slice | seg | step | duration | tasknum | rows | tbl -------+-------+-----+------+----------+---------+-------+----- 6028 | 0 | 4 | 5 | 41 | 22 | 24277 | 240 6028 | 1 | 4 | 5 | 26 | 23 | 24189 | 240 6028 | 3 | 4 | 5 | 25 | 23 | 24376 | 240 6028 | 2 | 4 | 5 | 54 | 22 | 23936 | 240