Schémas :

ACCOUNT_USAGE

Vue TABLE_PRUNING_HISTORY

Cette vue Account Usage peut être utilisée pour déterminer l’efficacité de l’élagage pour toutes les tables et pour comprendre comment l’ordre par défaut (naturel) des données d’une table affecte l’élagage.

Vous pouvez comparer le nombre de partitions élaguées (PARTITIONS_PRUNED) au nombre total de partitions analysées et élaguées (PARTITIONS_SCANNED + PARTITIONS_PRUNED).

Vous pouvez également utiliser cette vue pour comparer les effets sur l’élagage avant et après l’activation du clustering automatique et de l”optimisation de la recherche pour une table.

Colonnes

Nom de la colonne

Type de données

Description

START_TIME

TIMESTAMP_LTZ

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

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

TEXT

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

TEXT

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

TEXT

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

NUM_SCANS

NUMBER

Nombre d’opérations d’analyse de toutes les requêtes (y compris les déclarations SELECT et DML) sur la table dans la fenêtre START_TIME et END_TIME. Notez qu’une requête donnée peut entraîner plusieurs opérations d’analyse sur la même table.

PARTITIONS_SCANNED

NUMBER

Nombre de partitions analysées pendant les opérations d’analyse décrites dans NUM_SCANS.

PARTITIONS_PRUNED

NUMBER

Nombre de partitions élaguées lors des opérations d’analyse décrites dans NUM_SCANS.

ROWS_SCANNED

NUMBER

Nombre de lignes analysées pendant les opérations d’analyse décrites dans NUM_SCANS.

ROWS_PRUNED

NUMBER

Nombre de lignes élaguées lors des opérations d’analyse décrites dans NUM_SCANS.

Notes sur l’utilisation

  • La latence pour la vue peut atteindre 6 heures.

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

Exemples

Dressez la liste des cinq premières tables qui ont eu la plus mauvaise efficacité d’élagage au cours des sept derniers jours :

SELECT
    table_id,
    ANY_VALUE(table_name) AS table_name,
    SUM(num_scans) AS total_num_scans,
    SUM(partitions_scanned) AS total_partitions_scanned,
    SUM(partitions_pruned) AS total_partitions_pruned,
    SUM(rows_scanned) AS total_rows_scanned,
    SUM(rows_pruned) AS total_rows_pruned
  FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_PRUNING_HISTORY
  WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
  GROUP BY table_id
  ORDER BY
    total_partitions_pruned / GREATEST(total_partitions_scanned + total_partitions_pruned, 1),
    total_partitions_scanned DESC
  LIMIT 5;
Copy
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
| TABLE_ID | TABLE_NAME     | TOTAL_NUM_SCANS | TOTAL_PARTITIONS_SCANNED | TOTAL_PARTITIONS_PRUNED | TOTAL_ROWS_SCANNED | TOTAL_ROWS_PRUNED |
|----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------|
|   308226 | SENSOR_DATA_TS |              11 |                       21 |                       1 |           52500000 |           2500000 |
|   185364 | MATCH          |              16 |                       14 |                       2 |             240968 |             34424 |
|   209932 | ORDER_HEADER   |               2 |                      300 |                      56 |          421051748 |          75350790 |
|   209922 | K7_T1          |             261 |                      261 |                      52 |              30421 |              3272 |
|   338948 | SENSOR_DATA_TS |               9 |                       15 |                       3 |           38880000 |           8035200 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+

L’exemple ci-dessus utilise GREATEST pour éviter de diviser par zéro lorsque la somme du nombre de partitions analysées et du nombre de partitions élaguées est nulle.