STL_SCAN - Amazon Redshift

STL_SCAN

Analiza los pasos de exámenes de tablas de las consultas. El número de paso para las filas de esta tabla siempre es 0 porque un examen es el primer paso de un segmento.

STL_SCAN 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_SCAN 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ó.
starttime 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.
endtime Marca de tiempo Hora en UTC en la que finalizó 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.
tasknum integer Es el número del proceso de tarea de la consulta que se asignó para ejecutar el paso.
rows bigint Es la cantidad total de filas que se procesaron.
bytes bigint Tamaño, en bytes, de todas las filas de resultado del paso.
fetches bigint Esta información es solo para uso interno.
type integer ID del tipo de examen. Para obtener una lista de valores válidos, consulte la siguiente tabla.
tbl integer ID de la tabla.
is_rrscan character (1) Si es true (t), indica que en el paso se utilizó un examen de rango restringido.
is_delayed_scan character (1) Esta información es solo para uso interno.
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.
rows_pre_user_filter bigint Para los exámenes de tablas permanentes, la cantidad total de filas procesadas después de filtrar las marcadas para eliminación (filas fantasma), pero antes de aplicar los filtros de consulta definidos por el usuario.
perm_table_name character (136) Para los exámenes de tablas permanentes, el nombre de la tabla examinada.
is_rlf_scan character (1) Si es true (t), indica que en el paso se utilizó el filtrado en el nivel de fila.
is_rlf_scan_reason integer Esta información es solo para uso interno.
num_em_blocks integer Esta información es solo para uso interno.
checksum bigint Esta información es solo para uso interno.
runtime_filtering character (1) Si es true (t), indica que se aplican filtros en tiempo de ejecución.
scan_region integer Esta información es solo para uso interno.
num_sortkey_as_predicate integer Esta información es solo para uso interno.
row_fetcher_state integer Esta información es solo para uso interno.
consumed_scan_ranges bigint Esta información es solo para uso interno.
work_stealing_reason bigint Esta información es solo para uso interno.
is_vectorized_scan character (1) Esta información es solo para uso interno.
is_vectorized_scan_reason integer Esta información es solo para uso interno.
row_fetcher_reason bigint Esta información es solo para uso interno.
topology_signature bigint Esta información es solo para uso interno.
use_tpm_partition character (1) Esta información es solo para uso interno.
is_rrscan_expr character (1) Esta información es solo para uso interno.
scanned_mega_value character (1) Esta información es solo para uso interno. Esta información muestra si el paso de escaneo dado ha escaneado un valor grande. Un valor grande se almacenará en varios bloques. El tamaño del bloque es de 1 MB de forma predeterminada, un valor grande es superior a 1 MB en la configuración predeterminada.

Tipos de exámenes

ID del tipo Descripción
1 Datos de la red.
2 Tablas permanentes de usuarios en la memoria compartida comprimida.
3 Tablas transitorias en filas.
21 Carga de archivos desde Amazon S3.
22 Carga de tablas desde Amazon DynamoDB.
23 Carga de datos desde una conexión SSH remota.
24 Carga de datos desde un clúster remoto (región ordenada). Se utiliza para el cambio de tamaño.
25 Carga de datos desde un clúster remoto (región desordenada). Se utiliza para el cambio de tamaño.
28 Lea los datos de una vista de serie temporal con UNION ALL en varias tablas.
29 Lectura de datos desde tablas externas de Amazon S3.
30 Lectura de la información de partición de una tabla externa de Amazon S3.
33 Lectura de datos desde una tabla de Postgres remota.
36 Lectura de datos desde una tabla de MySQL remota.
37 lectura de datos de una transmisión remota de Kinesis.

Notas de uso

Idealmente, rows debe tener un valor relativamente cercano a rows_pre_filter. Una gran diferencia entre rows y rows_pre_filter indica que el motor de ejecución está examinando filas que luego se descartan, lo cual es ineficaz. La diferencia entre rows_pre_filter y rows_pre_user_filter es la cantidad de filas fantasmas en el examen. Ejecute una función VACUUM para eliminar las filas marcadas para ser eliminadas. La diferencia entre rows y rows_pre_user_filter es la cantidad de filas filtradas por la consulta. Si se descartan muchas filas por el filtro del usuario, revise su elección de columna de ordenación o si el descarte se debe a una región desordenada de gran tamaño ejecute una limpieza.

Consultas de ejemplo

En el siguiente ejemplo, se muestra que rows_pre_filter es mayor que rows_pre_user_filter porque la tabla ha eliminado filas que no fueron limpiadas (filas fantasma).

SELECT query, slice, segment,step,rows, rows_pre_filter, rows_pre_user_filter from stl_scan where query = pg_last_query_id(); query | slice | segment | step | rows | rows_pre_filter | rows_pre_user_filter -------+--------+---------+------+-------+-----------------+---------------------- 42915 | 0 | 0 | 0 | 43159 | 86318 | 43159 42915 | 0 | 1 | 0 | 1 | 0 | 0 42915 | 1 | 0 | 0 | 43091 | 86182 | 43091 42915 | 1 | 1 | 0 | 1 | 0 | 0 42915 | 2 | 0 | 0 | 42778 | 85556 | 42778 42915 | 2 | 1 | 0 | 1 | 0 | 0 42915 | 3 | 0 | 0 | 43428 | 86856 | 43428 42915 | 3 | 1 | 0 | 1 | 0 | 0 42915 | 10000 | 2 | 0 | 4 | 0 | 0 (9 rows)