- Schémas :
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 |
PARTITIONS_PRUNED |
NUMBER |
Nombre de partitions élaguées lors des opérations d’analyse décrites dans |
ROWS_SCANNED |
NUMBER |
Nombre de lignes analysées pendant les opérations d’analyse décrites dans |
ROWS_PRUNED |
NUMBER |
Nombre de lignes élaguées lors des opérations d’analyse décrites dans |
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;
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
| 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.