

 Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement jusqu’au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="r_STL_SCAN"></a>

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](cm_chap_system-tables.md#c_visibility-of-data).

**Note**  
STL\_SCAN contient uniquement les requêtes exécutées sur les clusters alloués principaux. Elle ne contient pas de requêtes exécutées sur des clusters de mise à l’échelle de la simultanéité ou sur des espaces de noms sans serveur. Pour accéder aux plans d’explication de requêtes exécutées à la fois sur les clusters principaux, sur les clusters de mise à l’échelle de la simultanéité et sur des espaces de noms sans serveur, nous vous recommandons d’utiliser la vue de surveillance SYS [SYS\_QUERY\_DETAIL](SYS_QUERY_DETAIL.md). Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre.

## Colonnes de la table
<a name="r_STL_SCAN-table-columns"></a>


| 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
<a name="r_STL_SCAN-scan-types"></a>


| 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
<a name="w2aac59c29b9d101c15"></a>

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
<a name="r_STL_SCAN-sample-queries"></a>

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)
```