Schémas :

ACCOUNT_USAGE

Vue TABLE_QUERY_PRUNING_HISTORY

Utilisez cette vue d’utilisation du compte pour mieux comprendre les modèles d’accès aux données pendant l’exécution des requêtes.

Vous pouvez utiliser cette vue en combinaison avec Vue COLUMN_QUERY_PRUNING_HISTORY. Par exemple, vous pouvez identifier l’accès aux tables cibles en utilisant la vue TABLE_QUERY_PRUNING_HISTORY, puis identifier les colonnes fréquemment utilisées dans ces tables à l’aide de la vue COLUMN_QUERY_PRUNING_HISTORY.

En particulier, ces vues peuvent vous aider à faire un choix plus éclairé en matière de clés de clustering.

Chaque ligne de cette vue représente l’historique des requêtes éliminées pour une table spécifique au cours d’un intervalle de temps donné. Les données sont agrégées par intervalle de temps et comprennent des informations sur le nombre de requêtes exécutées, les partitions analysées, les partitions supprimées, les lignes analysées, les lignes supprimées et les lignes correspondantes.

Voir aussi Vue TABLE_PRUNING_HISTORY et Élagage de requête.

Colonnes

Nom de la colonne

Type de données

Description

INTERVAL_START_TIME

TIMESTAMP_LTZ

Début de la plage horaire (sur la marque horaire) pendant laquelle les requêtes ont été exécutées.

INTERVAL_END_TIME

TIMESTAMP_LTZ

Fin de la plage horaire (sur la marque horaire) pendant laquelle les requêtes ont été exécutées.

TABLE_ID

NUMBER

Identificateur interne/généré par le système pour la table qui a été interrogée.

TABLE_NAME

VARCHAR

Nom de la table interrogée.

SCHEMA_ID

NUMBER

Identificateur interne/généré par le système pour le schéma contenant la table interrogée.

SCHEMA_NAME

VARCHAR

Nom du schéma contenant la tâche de la table interrogée.

DATABASE_ID

NUMBER

Identificateur interne/généré par le système pour la base de données contenant la table interrogée.

DATABASE_NAME

VARCHAR

Nom de la base de données contenant la table interrogée.

WAREHOUSE_ID

NUMBER

Identificateur interne / généré par le système pour l’entrepôt utilisé pour exécuter des requêtes.

WAREHOUSE_NAME

VARCHAR

Nom de l’entrepôt qui a exécuté les requêtes.

QUERY_HASH

VARCHAR

La valeur de hachage calculée sur la base du texte SQL canonisé.

QUERY_PARAMETERIZED_HASH

VARCHAR

La valeur de hachage calculée à partir de la requête paramétrée.

NUM_QUERIES

NUMBER

Nombre de requêtes exécutées dans cet intervalle de temps avec cette valeur QUERY_HASH spécifique, en utilisant cet entrepôt, en accédant à cette table.

AGGREGATE_QUERY_ELAPSED_TIME

NUMBER

Temps total écoulé (en millisecondes) pour les requêtes définies par NUM_QUERIES. Ce total comprend le temps d’attente et tout autre temps non lié à la compilation et à l’exécution.

AGGREGATE_QUERY_COMPILATION_TIME

NUMBER

Temps total de compilation (en millisecondes) pour les requêtes définies par NUM_QUERIES.

AGGREGATE_QUERY_EXECUTION_TIME

NUMBER

Temps d’exécution total (en millisecondes) pour les requêtes définies par NUM_QUERIES.

PARTITIONS_SCANNED

NUMBER

Nombre de partitions analysées sur cette table pour les requêtes définies par NUM_QUERIES.

PARTITIONS_PRUNED

NUMBER

Nombre de partitions supprimées dans cette table pour les requêtes définies par NUM_QUERIES. Ces partitions ont été supprimées lors du traitement de la requête et non analysées, ce qui améliore l’efficacité de la requête.

ROWS_SCANNED

NUMBER

Nombre de lignes analysées dans cette table pour les requêtes définies par NUM_QUERIES.

ROWS_PRUNED

NUMBER

Nombre de lignes supprimées dans cette table pour les requêtes définies par NUM_QUERIES. Ces lignes ont été supprimées lors du traitement de la requête et non analysées, ce qui améliore l’efficacité de la requête.

ROWS_MATCHED

NUMBER

Nombre de lignes correspondant aux filtres de la clause WHERE lors de l’analyse de cette table pour les requêtes définies par NUM_QUERIES.

Notes sur l’utilisation

  • La latence pour la vue peut atteindre 4 heures.

  • Les données sont conservées pendant 1 an.

  • Cette vue n’inclut pas les informations d’élagage pour les tables hybrides.

  • Pour les conditions de filtrage complexes qui ne peuvent pas bénéficier d’une optimisation pushdown, les lignes peuvent ne pas être filtrées lors de l’opération d’analyse de la table, même si elles ne répondent pas à la condition de filtrage. Par conséquent, ces lignes sont comptées dans la valeur ROWS_MATCHED.

  • Les utilisateurs et les rôles auxquels le rôle de base de données USAGE_VIEWER a été attribué peuvent accéder à cette vue. Pour plus d’informations, voir Rôles des bases de données SNOWFLAKE.

  • Cette vue conserve les données des 1 000 analyses de table les plus longues par requête. Seules les requêtes extrêmement complexes dépassent ce nombre d’analyses, de sorte que les données sont rarement omises.

Exemples

La première requête est un exemple fonctionnel simple qui renvoie l’historique des suppressions pour les requêtes effectuées sur une table spécifique à une date donnée, où au moins une ligne a été supprimée. Chaque ligne du résultat correspond à une fenêtre de temps spécifique d’une heure pour les requêtes qui ont été effectuées à la date spécifiée dans la clause WHERE (INTERVAL_START_TIME).

La table sensor_data_ts de cette requête contient 5 356 800 lignes de données chronologiques synthétiques. Exactement la moitié des lignes du tableau (2 678 400) ont été supprimées pour toutes les requêtes présentées ici. Le nombre de lignes correspondantes varie pour ces requêtes.

SELECT interval_start_time, interval_end_time, table_id, table_name,
    num_queries, query_hash, rows_scanned, rows_pruned, rows_matched
  FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_QUERY_PRUNING_HISTORY
  WHERE interval_start_time LIKE '2025-04-24%'
    AND table_name='SENSOR_DATA_TS'
    AND rows_pruned > 0
  ORDER BY 1;
Copy
+-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------+
| INTERVAL_START_TIME           | INTERVAL_END_TIME             | TABLE_ID | TABLE_NAME     | NUM_QUERIES | QUERY_HASH                       | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED |
|-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------|
| 2025-04-24 14:00:00.000 -0700 | 2025-04-24 15:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 833f4ec4ebbda62c7882e1839faec799 |      2678400 |     2678400 |            5 |
| 2025-04-24 14:00:00.000 -0700 | 2025-04-24 15:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 94d16d2fa0892247d27066e45b58d3e4 |      2678400 |     2678400 |            5 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 24e89f5c01209d7b395f56559f893dc8 |      2678400 |     2678400 |      2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 71c9c6570ef849e66f83af0625b793a2 |      2678400 |     2678400 |      2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | c75cb64d446c1ba222ac14ebd1923641 |      2678400 |     2678400 |      2678400 |
| 2025-04-24 15:00:00.000 -0700 | 2025-04-24 16:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 5a3784c59fc788804c903d96698dd969 |      2678400 |     2678400 |            5 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 069a076d4d6850e3d242fccf498c7c6d |      2678400 |     2678400 |       216642 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 4c9c5aacb7a61fc6858d107c5c46fb14 |      2678400 |     2678400 |       216642 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 3e509721380b262906c62c76107e46c9 |      2678400 |     2678400 |      2678400 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 9f7e607fe48faa18e332f65cde49f037 |      2678400 |     2678400 |      2678400 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | b4488d8a84ab18b00dd6b2fead4a4cb4 |      2678400 |     2678400 |       394106 |
| 2025-04-24 17:00:00.000 -0700 | 2025-04-24 18:00:00.000 -0700 |   652324 | SENSOR_DATA_TS |           1 | 157d775a79c5bae120fb5db9f7d8d027 |      2678400 |     2678400 |       216642 |
+-------------------------------+-------------------------------+----------+----------------+-------------+----------------------------------+--------------+-------------+--------------+

L’exemple suivant calcule un « taux d’élagage » pour chaque table afin de déterminer l’efficacité du nettoyage des requêtes exécutées sur un entrepôt donné à un moment donné. La requête renvoie également le nombre de partitions analysées par requête, ce qui vous aide à comprendre les performances de la requête par rapport au volume de données à analyser.

Au vu des résultats de cette requête, les utilisateurs pourraient conclure que, bien que sensor_data_ts soit beaucoup plus consulté que sensor_data1, ces requêtes prennent généralement moins de temps et analysent beaucoup moins de micro-partitions.

SELECT
    SUM(total_execution_time) as sum_exec_time,
    SUM(num_queries) as sum_num_queries,
    SUM(partitions_pruned)/SUM(partitions_pruned+partitions_scanned) AS pruning_ratio,
    SUM(partitions_scanned)/SUM(num_queries) AS partitions_scanned_per_query,
    table_name,
    schema_name,
    database_name
  FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_QUERY_PRUNING_HISTORY
  WHERE interval_start_time > '2025-04-25 12:00:00.000 -0700'
    AND warehouse_name = 'SENSORS_WH'
  GROUP BY ALL
  ORDER BY 1 DESC;
Copy
+---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------+
| SUM_EXEC_TIME | SUM_NUM_QUERIES | PRUNING_RATIO | PARTITIONS_SCANNED_PER_QUERY | TABLE_NAME     | SCHEMA_NAME    | DATABASE_NAME |
|---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------|
|       1938743 |           19283 |      0.230000 |                  1800.000000 | SENSOR_DATA1   | SENSORS_SCHEMA | SENSORS_DB    |
|        123732 |           39320 |      0.950000 |                    12.000000 | SENSOR_DATA_TS | SENSORS_SCHEMA | SENSORS_DB    |
+---------------+-----------------+---------------+------------------------------+----------------+----------------+---------------+