Tiempo de ejecución de consulta demasiado largo - Amazon Redshift

Tiempo de ejecución de consulta demasiado largo

La consulta puede tardar demasiado por los siguientes motivos. Le sugerimos los siguientes enfoques de resolución de problemas.

Falta de optimización en las tablas

Configure la clave de ordenación, el estilo de distribución y la codificación de compresión de las tablas para sacar el máximo provecho del procesamiento en paralelo. Para obtener más información, consulte Optimización de tablas automática

Consulta guardada en el disco

Es posible que sus consultas se estén guardando en el disco, al menos una parte de la ejecución de las consultas. Para obtener más información, consulte Mejora del rendimiento de las consultas.

Consulta actual es espera hasta que otras consultas finalicen

Puede mejorar el rendimiento general del sistema mediante la creación de colas de consultas y la asignación de diferentes tipos de consultas a las colas correspondientes. Para obtener más información, consulte Administración de la carga de trabajo.

Falta de optimización en las consultas

Analice el plan de explicación para encontrar oportunidades de reescritura de las consultas o de optimización de la base de datos. Para obtener más información, consulte Creación e interpretación de un plan de consultas.

Mayor memoria para la ejecución de consultas

Si una consulta específica necesita más memora, puede aumentar la memoria disponible si aumenta el recuento wlm_query_slot_count.

Ejecución de un comando VACUUM basado en la base de datos

Ejecute el comando VACUUM siempre que añada, elimine o modifique una cantidad importante de filas, a menos que cargue sus datos en orden de clave de ordenación. El comando VACUUM reorganiza sus datos para conservar la ordenación y el rendimiento de la restauración. Para obtener más información, consulte Limpieza de tablas.

Recursos adicionales para solucionar problemas de consultas de larga duración

A continuación, se indican temas de la vista del sistema y otras secciones de la documentación que resultan útiles para la optimización de consultas:

  • La vista del sistema STV_INFLIGHT muestra las consultas que se están ejecutando en el clúster. Puede ser útil utilizarlo junto con STV_RECENTS para determinar qué consultas se están ejecutando en ese momento o se han completado recientemente.

  • SYS_QUERY_HISTORY es útil para solucionar problemas. Muestra las consultas DDL y DML con propiedades pertinentes como su estado actual, por ejemplo running o failed, el tiempo que tardó cada una en ejecutarse y si una consulta se ejecutó en un clúster con escalado de simultaneidad.

  • STL_QUERYTEXT captura el texto de la consulta para los comandos SQL. Además, SVV_QUERY_INFLIGHT, que une STL_QUERYTEXT a STV_INFLIGHT, muestra más metadatos de consulta.

  • Un conflicto entre transacciones y bloqueos puede ser un posible origen de problemas de rendimiento de las consultas. Para obtener información sobre las transacciones que actualmente mantienen bloqueos en las tablas, consulte SVV_TRANSACTIONS.

  • Identificación de consultas que deben ajustarse con prioridad proporciona una consulta de solución de problemas que lo ayuda a determinar qué consultas ejecutadas recientemente consumieron más tiempo. Esto puede ayudarlo a centrar sus esfuerzos en las consultas que necesitan mejoras.

  • Si desea profundizar en la administración de consultas y comprender cómo administrar las colas de consultas, Administración de la carga de trabajo le muestra cómo hacerlo. La administración de cargas de trabajo es una característica avanzada y recomendamos la administración automatizada de cargas de trabajo en la mayoría de los casos.