- Schemas:
Ansicht TABLE_PRUNING_HISTORY¶
Diese Account Usage-Ansicht kann verwendet werden, um die Effizienz der Bereinigung für alle Tabellen zu bestimmen und um zu verstehen, wie die (natürliche) Standardreihenfolge der Daten in einer Tabelle die Bereinigung beeinflusst.
Sie können die Anzahl der bereinigten Partitionen (PARTITIONS_PRUNED
) mit der Gesamtanzahl der gescannten und bereinigten Partitionen (PARTITIONS_SCANNED + PARTITIONS_PRUNED
) vergleichen.
Sie können diese Ansicht auch verwenden, um die Auswirkungen auf die Bereinigung vor und nach der Aktivierung von Automatic Clustering und Suchoptimierung für eine Tabelle zu vergleichen.
Spalten¶
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
START_TIME |
TIMESTAMP_LTZ |
Beginn des Zeitraums (auf die Stunde genau), in dem die Abfragen ausgeführt wurden. |
END_TIME |
TIMESTAMP_LTZ |
Ende des Zeitraums (auf die Stunde genau), in dem die Abfragen ausgeführt wurden. |
TABLE_ID |
NUMBER |
Interner/systemgenerierter Bezeichner für die Tabelle, die abgefragt wurde. |
TABLE_NAME |
TEXT |
Name der Tabelle, die abgefragt wurde. |
SCHEMA_ID |
NUMBER |
Interner/systemgenerierter Bezeichner für das Schema, das die abgefragte Tabelle enthält. |
SCHEMA_NAME |
TEXT |
Name des Schemas, das die abgefragte Tabelle enthält. |
DATABASE_ID |
NUMBER |
Interner/systemgenerierter Bezeichner für die Datenbank, die die abgefragte Tabelle enthält. |
DATABASE_NAME |
TEXT |
Name der Datenbank, die die abgefragte Tabelle enthält. |
NUM_SCANS |
NUMBER |
Anzahl der Scanoperationen von allen Abfragen (einschließlich SELECT Anweisungen und DML Anweisungen) auf der Tabelle während des START_TIME- und END_TIME-Zeitfensters. Beachten Sie, dass eine bestimmte Abfrage zu mehreren Scanoperationen in derselben Tabelle führen kann. |
PARTITIONS_SCANNED |
NUMBER |
Anzahl der Partitionen, die während der unter |
PARTITIONS_PRUNED |
NUMBER |
Anzahl der Partitionen, die bei den unter |
ROWS_SCANNED |
NUMBER |
Anzahl der Zeilen, die während der unter |
ROWS_PRUNED |
NUMBER |
Anzahl der Zeilen, die bei den in |
Nutzungshinweise¶
Die Latenzzeit der Ansicht kann bis zu 6 Stunden betragen.
Diese Ansicht enthält keine Bereinigungsinformationen für Hybridtabellen.
Beispiele¶
Listen Sie die fünf Tabellen auf, die in den letzten sieben Tagen die schlechteste Bereinigungseffizienz hatten:
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 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
Das obige Beispiel verwendet GREATEST, um eine Division durch Null zu vermeiden, wenn die Summe aus der Anzahl der gescannten Partitionen und der Anzahl der beschnittenen Partitionen Null ist.