STL_ALERT_EVENT_LOG
Registra una alerta cuando el optimizador de consultas identifica condiciones que podrían indicar problemas de rendimiento. Utilice la vista STL_ALERT_EVENT_LOG para identificar oportunidades de mejora del rendimiento de las consultas.
Una consulta consta de distintos segmentos y cada segmento consta de uno o más pasos. Para obtener más información, consulte Procesamiento de consultas.
STL_ALERT_EVENT_LOG 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_ALERT_EVENT_LOG solo contiene consultas que se ejecutan en los clústeres principales. No contiene consultas que se ejecuten en clústeres que se escalen de forma simultánea. Para acceder a las consultas que se ejecutan en los clústeres de escalado principal y simultáneo, le recomendamos que utilice la vista de monitoreo 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 | 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. |
slice | integer | Es el número que identifica el sector donde se estaba ejecutando la consulta. |
segment | integer | Número que identifica el segmento de la consulta. |
paso | integer | Paso de la consulta que se ejecutó. |
pid | integer | ID de proceso asociado a la instrucción y al sector. La misma consulta podría tener varios PID si se ejecutara en varios sectores. |
xid | bigint | ID de la transacción asociado a la instrucción. |
evento | character(1024) | Descripción del evento de alerta. |
solution | character(1024) | Solución recomendada. |
event_time | 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 . |
Notas de uso
Puede utilizar STL_ALERT_EVENT_LOG para identificar posibles problemas en sus consultas; luego, siga las prácticas descritas en Ajuste del rendimiento de las consultas para optimizar el diseño de su base de datos y vuelva a escribir sus consultas. STL_ALERT_EVENT_LOG registra las siguientes alertas:
-
Faltan estadísticas
Faltan estadísticas. Ejecute la función ANALYZE después de la carga de datos o de actualizaciones importantes y utilice la función STATUPDATE con las operaciones COPY. Para obtener más información, consulte Prácticas recomendadas de Amazon Redshift para el diseño de consultas.
-
Bucle anidado
Un bucle anidado es, por lo general, un producto cartesiano. Evalúe su consulta para asegurarse de que todas las tablas que emplee estén combinadas de forma eficaz.
-
Filtro muy selectivo
La relación de filas devueltas respecto a las filas examinadas es inferior al 0,05. Las filas examinadas es el valor de
rows_pre_user_filter
y las filas devueltas es el valor de las filas de la vista de sistema STL_SCAN. Indica que la consulta está examinando una cantidad excepcionalmente grande de filas para determinar el conjunto de resultados. Esto puede deberse a que faltan claves de ordenación, o que estas son incorrectas. Para obtener más información, consulte Claves de clasificación. -
Filas fantasma excesivas
Un examen omitió una cantidad considerablemente grande de filas que están marcadas como eliminadas pero no limpiadas o filas que fueron insertadas pero no confirmadas. Para obtener más información, consulte Limpieza de tablas.
-
Distribución grande
Más de 1 000 000 filas fueron redistribuidas para una combinación hash o una agregación. Para obtener más información, consulte Distribución de datos para la optimización de consultas.
-
Difusión grande
Más de 1 000 000 filas fueron difundidas para una combinación hash. Para obtener más información, consulte Distribución de datos para la optimización de consultas.
-
Ejecución en serie
En el plan de consulta se indicó un estilo de redistribución DS_DIST_ALL_INNER, lo que exige una ejecución en serie porque toda la tabla interna fue redistribuida a un nodo único. Para obtener más información, consulte Distribución de datos para la optimización de consultas.
Consultas de ejemplo
La siguiente consulta muestra eventos de alerta para cuatro consultas.
SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from stl_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)