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 de plus amples informations, veuillez consulter Visibilité des données dans les tables et vues système.
Note
STL_ contient SCAN 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 des clusters de dimensionnement principaux et simultanés, nous vous recommandons d'utiliser la vue SYS SYS_QUERY_DETAIL de surveillance. Les données de la vue SYS de surveillance 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 à UTC laquelle la requête a commencé. 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. olpPar exemple : 2009-06-12 11:29:19.131358 . |
endtime | timestamp | Heure à UTC laquelle la requête s'est terminée. 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. olpPar 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 des données à partir d'une SSH connexion 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éries chronologiques 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 les données d'une SQL table My Table distante. |
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 un VACUUM pour supprimer les lignes marquées pour 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)