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)