SVL_QUERY_REPORT
Amazon Redshift crea la vista SVL_QUERY_REPORT de una función UNION de una cantidad de tablas de sistema STL de Amazon Redshift para proporcionar información acerca de los pasos completados de la consulta.
Esta vista desglosa la información relacionada con las consultas completadas por sector y por paso, lo que puede ayudar con el nodo de solución de problemas y con los problemas del sector en el clúster de Amazon Redshift.
SVL_QUERY_REPORT 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.
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. |
slice | integer | Sector de datos donde se ejecutó el paso. |
segment | integer |
Número del segmento. 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 | Paso de la consulta que se completó. |
start_time | Marca de tiempo | Hora exacta en UTC en que un segmento comenzó a ejecutarse, con 6 dígitos de precisión para las fracciones de segundos. Por ejemplo: 2012-12-12 11:29:19.131358 . |
end_time | Marca de tiempo | Hora exacta en UTC en que un segmento finalizó la ejecución, con 6 dígitos de precisión para las fracciones de segundos. Por ejemplo: 2012-12-12 11:29:19.131467 . |
elapsed_time | bigint | Tiempo (en microsegundos) que demoró el segmento en ejecutarse. |
rows | bigint | Cantidad de filas producidas por el paso (por sector). Este número representa la cantidad de filas para el sector que son el resultado de la ejecución del paso, no la cantidad de filas recibidas ni procesadas por el paso. En otras palabras, es la cantidad de filas que sobreviven al paso y que pasan al siguiente. |
bytes | bigint | Cantidad de bytes producidos por el paso (por sector). |
etiqueta | char (256) | Etiqueta del paso, que se compone del nombre de un paso de la consulta y, si corresponde, el ID y el nombre de la tabla (por ejemplo, scan tbl=100448 name =user ). Los ID de tabla de tres dígitos suelen referirse a exámenes de tablas transitorias. Cuando vea
tbl=0 , por lo general se refiere a un examen de un valor constante. |
is_diskbased | character (1) | Indica si este paso de la consulta se ejecutó como una operación basada en el 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. Este valor es el umbral query_working_mem asignado para el uso durante la ejecución, no la cantidad de memoria que realmente se usó. |
is_rrscan | character (1) | Si es true (t ), indica que se utilizó un examen de rango restringido en el paso. |
is_delayed_scan | character (1) | Si es true (t ), indica que en el paso se utilizó un examen diferido. |
rows_pre_filter | bigint | Para exámenes de tablas permanentes, la cantidad total de filas emitidas antes de filtrar las filas marcadas para eliminación (filas fantasma) y antes de aplicar los filtros de consulta definidos por el usuario. |
Consultas de ejemplo
En la siguiente consulta, se demuestra el sesgo de datos de las filas devueltas para la consulta con el ID de consulta 279. Utilice esta consulta para determinar si los datos de la base de datos están distribuidos uniformemente en los sectores en el clúster del data warehouse:
select query, segment, step, max(rows), min(rows), case when sum(rows) > 0 then ((cast(max(rows) -min(rows) as float)*count(rows))/sum(rows)) else 0 end from svl_query_report where query = 279 group by query, segment, step order by segment, step;
Esta consulta debe devolver datos similares al siguiente ejemplo de salida:
query | segment | step | max | min | case ------+---------+------+----------+----------+---------------------- 279 | 0 | 0 | 19721687 | 19721687 | 0 279 | 0 | 1 | 19721687 | 19721687 | 0 279 | 1 | 0 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 1 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 4 | 986085 | 986084 | 1.01411202804304e-06 279 | 2 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 2 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 3 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 1 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 2 | 1 | 1 | 0 279 | 5 | 0 | 1 | 1 | 0 279 | 5 | 1 | 1 | 1 | 0 279 | 6 | 0 | 20 | 20 | 0 279 | 6 | 1 | 1 | 1 | 0 279 | 7 | 0 | 1 | 1 | 0 279 | 7 | 1 | 0 | 0 | 0 (19 rows)