STL_SCAN - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

STL_SCAN

Analyse les étapes d’analyse de table pour les requêtes. Le numéro de l’étape pour les lignes de cette table est toujours 0, car une analyse est la première étape d’un segment.

STL_SCAN est visible par tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour plus d’informations, consultez Visibilité des données dans les tables et vues système.

Note

STL_SCAN contient uniquement les requêtes exécutées sur les clusters principaux. Elle ne contient pas de requêtes exécutées sur des clusters de mise à l’échelle de la simultanéité. Pour accéder aux requêtes exécutées à la fois sur les clusters principaux et sur les clusters de mise à l’échelle de la simultanéité, nous vous recommandons d’utiliser la vue de surveillance SYS SYS_QUERY_DETAIL. Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre.

Colonnes de la table

Nom de la colonne Type de données Description
userid entier ID de l’utilisateur qui a généré l’entrée.
query entier ID de requête. La colonne de requête peut servir à joindre les autres tables système et les vues.
slice entier Numéro identifiant la tranche au cours de laquelle la requête était en cours d’exécution.
segment entier Numéro qui identifie le segment de requête.
étape entier Étape de la requête exécutée.
starttime timestamp Heure au format UTC du début de la requête. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. Par exemple : 2009-06-12 11:29:19.131358.
endtime timestamp Heure au format UTC de l’exécution de la requête. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. Par exemple : 2009-06-12 11:29:19.131358.
tasknum entier Numéro du processus de la tâche de requête qui a été assigné pour exécuter l’étape.
rows bigint Nombre total de lignes traitées.
octets bigint Taille, en octets, de toutes les lignes de sortie de l’étape.
fetches bigint Information à utilisation interne uniquement.
type entier ID du type de l’analyse. Pour obtenir la liste des valeurs valides, consultez le tableau suivant.
tbl entier ID de table.
is_rrscan character(1) Si la valeur est définie sur true (t), indique qu’une analyse à plage restreinte a été utilisée sur l’étape.
is_delayed_scan character(1) Information à utilisation interne uniquement.
rows_pre_filter bigint Pour les analyses de tables permanentes, le nombre total de lignes émises avant le filtrage des lignes marquées pour la suppression (lignes fantôme) et avant l’application des filtres de requête définis par l’utilisateur.
rows_pre_user_filter bigint Pour les analyses de tables permanentes, le nombre total de lignes traitées après le filtrage des lignes marquées pour la suppression (lignes fantôme) mais avant l’application des filtres de requête définis par l’utilisateur.
perm_table_name character(136) Pour les analyses de tables permanentes, le nom de la table analysé.
is_rlf_scan character(1) Si la valeur est définie sur true (t), un filtrage au niveau ligne a été utilisé pour cette étape.
is_rlf_scan_reason entier Information à utilisation interne uniquement.
num_em_blocks entier Information à utilisation interne uniquement.
checksum bigint Information à utilisation interne uniquement.
runtime_filtering character(1) Si la valeur est définie sur true (t), indique que les filtres d’exécution sont appliqués.
scan_region entier Information à utilisation interne uniquement.
num_sortkey_as_predicate entier Information à utilisation interne uniquement.
row_fetcher_state entier Information à utilisation interne uniquement.
consumed_scan_ranges bigint Information à utilisation interne uniquement.
work_stealing_reason bigint Information à utilisation interne uniquement.
is_vectorized_scan character(1) Information à utilisation interne uniquement.
is_vectorized_scan_reason entier Information à utilisation interne uniquement.
row_fetcher_reason bigint Information à utilisation interne uniquement.
topology_signature bigint Information à utilisation interne uniquement.
use_tpm_partition character(1) Information à utilisation interne uniquement.
is_rrscan_expr character(1) Information à utilisation interne uniquement.
scanned_mega_value character(1) Information à utilisation interne uniquement. Ces informations indiquent si l’étape d’analyse donnée a analysé une valeur élevée. Une valeur élevée sera stockée dans plusieurs blocs. La taille de bloc par défaut étant d’1 Mo, une valeur importante est supérieure à 1 Mo dans une configuration par défaut.

Types d’analyse

ID de type Description
1 Données du réseau.
2 Tables utilisateur permanentes en mémoire partagée compressée.
3 Tables transitoires en lignes.
21 Chargez des fichiers depuis Amazon S3.
22 Chargez des tables à partir d’Amazon DynamoDB.
23 Chargez les données depuis une connexion SSH distante.
24 Chargez les données depuis le cluster distant (région triée). Utilisé pour le redimensionnement.
25 Chargez les données depuis le cluster distant (région non triée). Utilisé pour le redimensionnement.
28 Lisez les données à partir d’une vue de série chronologique avec UNION ALL sur plusieurs tables.
29 Lisez des données à partir de Amazon S3.
30 Lisez les informations de partition d’une table externe Amazon S3.
33 Lisez des données à partir d’une table Postgres à distance.
36 Lisez des données à partir d’une table MySQL à distance.
37 Lisez les données d’un flux Kinesis distant.

Notes d’utilisation

Idéalement, rows doit être relativement proche de rows_pre_filter. Une grande différence entre rows et rows_pre_filter indique que le moteur d’exécution analyse des lignes qui seront ignorées par la suite, ce qui est inefficace. La différence entre rows_pre_filter et rows_pre_user_filter est le nombre de lignes fantôme de l’analyse. Exécutez une opération VACUUM pour supprimer les lignes marquées en vue de leur suppression. La différence entre rows et rows_pre_user_filter est le nombre de lignes filtrées par la requête. Si beaucoup de lignes sont rejetées par le filtre utilisateur, vérifiez votre choix de colonne de tri ou, si la raison en est due à une grande région non triée, exécutez une opération VACUUM.

Exemples de requêtes

L’exemple suivant montre que rows_pre_filter est supérieur à rows_pre_user_filter , car la table contient des lignes supprimées sur lesquelles l’opération VACUUM n’a pas été exécutée (lignes fantôme).

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)