STV_INFLIGHT - Amazon Redshift

STV_INFLIGHT

Utilice la tabla STV_INFLIGHT para determinar cuáles son las consultas que se están ejecutando en el clúster. Si está solucionando problemas, resulta útil para comprobar el estado de las consultas de larga duración.

STV_INFLIGHT no muestra las consultas únicas del nodo principal. Para obtener más información, consulte Funciones específicas del nodo principal. Todos los usuarios pueden ver STV_INFLIGHT. 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.

Solución de problemas con STV_INFLIGHT

Si utiliza STV_INFLIGHT para solucionar problemas de rendimiento de una consulta o de una colección de consultas, tenga en cuenta lo siguiente:

  • Las transacciones abiertas de larga duración suelen aumentar la carga. Estas transacciones abiertas pueden dar lugar a tiempos de ejecución más largos para otras consultas.

  • Los trabajos COPY y ETL de larga duración pueden afectar a otras consultas que se ejecuten en el clúster, si están consumiendo muchos recursos de computación. En la mayoría de los casos, trasladar estos trabajos de larga duración a momentos de poco uso aumenta el rendimiento de las cargas de trabajo de creación de informes o análisis.

  • Existen vistas que proporcionan información relacionada con STV_INFLIGHT. Entre ellas se incluye STL_QUERYTEXT, que captura el texto de consulta de los comandos SQL, y SVV_QUERY_INFLIGHT, que une STV_INFLIGHT a STL_QUERYTEXT. También puede utilizar STV_RECENTS con STV_INFLIGHT para la solución de problemas. Por ejemplo, STV_RECENTS puede indicar si determinadas consultas se encuentran en estado En ejecución o Terminado. La combinación de esta información con los resultados de STV_INFLIGHT puede darle más información sobre las propiedades de una consulta y el impacto en los recursos de computación.

También puede monitorear las consultas en ejecución mediante la consola de Amazon Redshift.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
userid integer ID del usuario que generó la entrada.
slice integer Sector donde se ejecuta la consulta.
consulta integer ID de la consulta. Se puede usar para combinar distintas 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 queda en blanco.
xid bigint ID de transacción.
pid integer ID de proceso. Todas las consultas en una sesión se ejecutan en el mismo proceso, por lo que este valor permanece constante si ejecuta una serie de consultas en la misma sesión. Puede utilizar esta columna para combinar la tabla STL_ERROR.
starttime Marca de tiempo La hora en que comenzó la consulta.
texto character(100) Texto de la consulta, truncado en 100 caracteres si la instrucción supera ese límite.
suspended integer Indica si la consulta está suspendida o no: 0 = false; 1 = true.
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 un 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

Consultas de ejemplo

Para ver todas las consultas activas que se están ejecutando actualmente en la base de datos, escriba la siguiente consulta:

select * from stv_inflight;

En el siguiente ejemplo de salida, se muestra dos consultas que se están ejecutando actualmente, incluida la misma consulta STV_INFLIGHT y una consulta que se ejecutó desde un script denominado avgwait.sql:

select slice, query, trim(label) querylabel, pid, starttime, substring(text,1,20) querytext from stv_inflight; slice|query|querylabel | pid | starttime | querytext -----+-----+-----------+-----+--------------------------+-------------------- 1011 | 21 | | 646 |2012-01-26 13:23:15.645503|select slice, query, 1011 | 20 |avgwait.sql| 499 |2012-01-26 13:23:14.159912|select avg(datediff( (2 rows)

La siguiente consulta selecciona varias columnas, como concurrency_scaling_status. Esta columna indica si las consultas se están enviando al clúster de escalado de simultaneidad. Si el valor es 1 para algunos resultados, es una indicación de que se están utilizando recursos de computación con escalado de simultaneidad. Para obtener más información, consulte Trabajo con escalado de simultaneidad.

select userid, query, pid, starttime, text, suspended, concurrency_scaling_status from STV_INFLIGHT;

La salida de ejemplo muestra el envío de una consulta al clúster de escalado de simultaneidad.

query | pid | starttime | text | suspended | concurrency_scaling_status --------+---------+----------------------------|------------------------|---------------|------------------------------- 1234567 | 123456 | 2012-01-26 13:23:15.645503 | select userid, query... 0 1 2345678 | 234567 | 2012-01-26 13:23:14.159912 | select avg(datediff(... 0 0 (2 rows)

Para obtener más consejos sobre la resolución de problemas de rendimiento de las consultas, consulte Solución de problemas de consultas.