Schemas:

ACCOUNT_USAGE

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 NUM_SCANS beschriebenen Operationen gescannt wurden.

PARTITIONS_PRUNED

NUMBER

Anzahl der Partitionen, die bei den unter NUM_SCANS beschriebenen Operationen entfernt wurden.

ROWS_SCANNED

NUMBER

Anzahl der Zeilen, die während der unter NUM_SCANS beschriebenen Operationen gescannt wurden.

ROWS_PRUNED

NUMBER

Anzahl der Zeilen, die bei den in NUM_SCANS beschriebenen Operationen entfernt wurden.

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;
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 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+

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.