SVV_QUERY_STATE
Utilice SVV_QUERY_STATE para ver información sobre el tiempo de ejecución de las consultas en ejecución actualmente.
La vista SVV_QUERY_STATE tiene un subconjunto de datos de la tabla STV_EXEC_STATE.
SVV_QUERY_STATE 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_DETAIL. 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.
nota
Esta vista solo está disponible cuando se consultan clústeres aprovisionados.
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. Se puede usar para combinar distintas vistas y tablas del sistema. |
seg | integer | Número del segmento de la consulta que se está ejecutando. Una consulta consta de distintos segmentos y cada segmento consta de uno o más pasos. Los segmentos de una consulta se ejecutan en paralelo. Cada segmento se ejecuta en un solo proceso. |
paso | integer | Número del paso de la consulta que se está ejecutando. Un paso es la unidad mínima de tiempo de ejecución de una consulta. Cada paso representa una unidad discreta de trabajo, como el examen de una tabla, los resultados devueltos o el ordenamiento de datos. |
maxtime | intervalo | Cantidad máxima de tiempo (en microsegundos) en que se ejecuta este paso. |
avgtime | interval | Tiempo promedio (en microsegundos) en que se ejecuta este paso. |
rows | bigint | Número de filas producidas por el paso que se está ejecutando. |
bytes | bigint | Número de bytes producidos por el paso que se está ejecutando. |
cpu | bigint | Para uso interno. |
memory | bigint | Para uso interno. |
rate_row | double precision | Relación de filas por segundo desde que se inició la consulta, computadas al sumar las filas y dividirlas en la cantidad de segundos desde que se inició la consulta hasta el momento actual. |
rate_byte | double precision | Relación de bytes por segundo desde que se inició la consulta, computadas al sumar los bytes y dividirlos en la cantidad de segundos desde que se inició la consulta hasta el momento actual. |
label | character (25) | Etiqueta de la consulta: un nombre para el paso, como scan o sort . |
is_diskbased | character (1) | Indica si este paso de la consulta se está ejecutando como una operación basada en disco: true (t ) (verdadero) o false (f ) (falso). Solo determinados pasos, como hash, ordenar y agregar pasos, pueden ir al disco. Muchos tipos de pasos se realizan siempre en la memoria. |
workmem | bigint | Cantidad de memoria funcional (en bytes) asignada a este paso de la consulta. |
num_parts | integer | Cantidad de particiones en que se divide una tabla hash durante un paso hash. Un número positivo en esta columna no significa que el paso hash se haya ejecutado como una operación basada en el disco. Controle el valor en la columna IS_DISKBASED para saber si el paso hash se basó en el disco. |
is_rrscan | character (1) | Si es true (t ), indica que se utilizó un examen de rango restringido en el paso. El valor predeterminado es false (f ). |
is_delayed_scan | character (1) | Si es true (t ), indica que en el paso se utilizó un examen diferido. El valor predeterminado es false (f ). |
Consultas de ejemplo
Determinar cuál es el tiempo de procesamiento de una consulta en cada paso
En la siguiente consulta, se muestra cuánto tiempo demoró en ejecutarse cada paso de la consulta con el ID de consulta 279 y cuántas filas de datos procesó Amazon Redshift:
select query, seg, step, maxtime, avgtime, rows, label
from svv_query_state
where query = 279
order by query, seg, step;
Esta consulta recupera la información de procesamiento acerca de la consulta 279, tal como se muestra en el siguiente ejemplo de salida:
query | seg | step | maxtime | avgtime | rows | label
------+---------+------+---------+---------+---------+-------------------
279 | 3 | 0 | 1658054 | 1645711 | 1405360 | scan
279 | 3 | 1 | 1658072 | 1645809 | 0 | project
279 | 3 | 2 | 1658074 | 1645812 | 1405434 | insert
279 | 3 | 3 | 1658080 | 1645816 | 1405437 | distribute
279 | 4 | 0 | 1677443 | 1666189 | 1268431 | scan
279 | 4 | 1 | 1677446 | 1666192 | 1268434 | insert
279 | 4 | 2 | 1677451 | 1666195 | 0 | aggr
(7 rows)
Determinar qué consultas activas se están ejecutando actualmente en el disco
En la siguiente consulta, se muestra si alguna de las consultas activas se está ejecutando actualmente en el disco:
select query, label, is_diskbased from svv_query_state
where is_diskbased = 't';
En este ejemplo de salida, se muestra si alguna de las consultas activas se está ejecutando actualmente en el disco:
query | label | is_diskbased
-------+--------------+--------------
1025 | hash tbl=142 | t
(1 row)