Schemas:

ACCOUNT_USAGE

Ansicht TABLE_QUERY_PRUNING_HISTORY

Verwenden Sie diese Account Usage-Ansicht, um ein besseres Verständnis der Datenzugriffsmuster während der Ausführung von Abfragen zu erlangen.

Sie können diese Ansicht in Kombination mit der Ansicht COLUMN_QUERY_PRUNING_HISTORY verwenden. Sie können zum Beispiel zuerst den Zugriff auf Zieltabellen mit der TABLE_QUERY_PRUNING_HISTORY-Ansicht und dann häufig verwendete Spalten auf diesen Tabellen mit der COLUMN_QUERY_PRUNING_HISTORY-Ansicht identifizieren.

Insbesondere können diese Ansichten Ihnen dabei helfen, eine fundiertere Auswahl für Gruppierungsschlüssel zu treffen.

Jede Zeile in dieser Ansicht stellt den Verlauf der Abfrageverkürzung für eine bestimmte Tabelle innerhalb eines bestimmten Zeitintervalls dar. Die Daten werden nach Zeitintervall aggregiert und enthalten Informationen über die Anzahl der ausgeführten Abfragen, der gescannten Partitionen, der verkürzten Partitionen, der gescannten Zeilen, der verkürzten Zeilen und der übereinstimmenden Zeilen.

Siehe auch Ansicht TABLE_PRUNING_HISTORY und Abfrageverkürzung.

Spalten

Spaltenname

Datentyp

Beschreibung

INTERVAL_START_TIME

TIMESTAMP_LTZ

Beginn des Zeitraums (auf die Stunde genau), in dem die Abfragen ausgeführt wurden.

INTERVAL_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

VARCHAR

Name der Tabelle, die abgefragt wurde.

SCHEMA_ID

NUMBER

Interner/systemgenerierter Bezeichner für das Schema, das die abgefragte Tabelle enthält.

SCHEMA_NAME

VARCHAR

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

VARCHAR

Name der Datenbank, die die abgefragte Tabelle enthält.

WAREHOUSE_ID

NUMBER

Interner/vom System generierter Bezeichner für das Warehouse, das zur Ausführung der Abfragen verwendet wurde.

WAREHOUSE_NAME

VARCHAR

Name des Warehouses, das die Abfragen ausgeführt hat.

QUERY_HASH

VARCHAR

Der Hash-Wert wird auf der Grundlage des kanonisierten SQL-Textes berechnet.

QUERY_PARAMETERIZED_HASH

VARCHAR

Der Hash-Wert, der auf Grundlage der parametrisierten Abfrage berechnet wird.

NUM_QUERIES

NUMBER

Anzahl der Abfragen, die in diesem Zeitraum mit diesem spezifischen QUERY_HASH-Wert unter Verwendung dieses Warehouses ausgeführt wurden und auf diese Tabelle zugreifen.

AGGREGATE_QUERY_ELAPSED_TIME

NUMBER

Insgesamt verstrichene Zeit (in Millisekunden) für Abfragen, die durch NUM_QUERIES definiert sind. Diese Summe beinhaltet auch Warteschlangen und andere Zeit, die nicht mit der Kompilierung und Ausführung verbunden ist.

AGGREGATE_QUERY_COMPILATION_TIME

NUMBER

Gesamtkompilierungszeit (in Millisekunden) für Abfragen, die durch NUM_QUERIES definiert sind.

AGGREGATE_QUERY_EXECUTION_TIME

NUMBER

Gesamtausführungszeit (in Millisekunden) für Abfragen, die durch NUM_QUERIES definiert sind.

PARTITIONS_SCANNED

NUMBER

Anzahl der Partitionen, die in dieser Tabelle für Abfragen gescannt wurden, die durch NUM_QUERIES definiert sind.

PARTITIONS_PRUNED

NUMBER

Anzahl der Partitionen, die in dieser Tabelle für Abfragen verkürzt wurden, die durch NUM_QUERIES definiert sind. Diese Partitionen wurden während der Abfrageverarbeitung eliminiert und nicht gescannt, wodurch die Effizienz der Abfrage verbessert wurde.

ROWS_SCANNED

NUMBER

Anzahl der Zeilen, die in dieser Tabelle für Abfragen gescannt wurden, die durch NUM_QUERIES definiert sind.

ROWS_PRUNED

NUMBER

Anzahl der Zeilen, die in dieser Tabelle für Abfragen verkürzt wurden, die durch NUM_QUERIES definiert sind. Diese Zeilen wurden während der Abfrageverarbeitung eliminiert und nicht gescannt, wodurch die Effizienz der Abfrage verbessert wurde.

ROWS_MATCHED

NUMBER

Anzahl der Zeilen, die einen Treffer für die WHERE-Klauselfilter ergaben, während diese Tabelle nach den durch NUM_QUERIES definierten Abfragen durchsucht wurde.

Nutzungshinweise

  • Die Latenzzeit der Ansicht kann bis zu 4 Stunden betragen.

  • Daten werden 1 Jahr lang aufbewahrt.

  • Diese Ansicht enthält keine Bereinigungsinformationen für Hybridtabellen.

  • Bei komplexen Filterbedingungen, die nicht von einer Pushdown-Optimierung profitieren können, werden Zeilen während des Tabellenscanvorgangs möglicherweise nicht herausgefiltert, auch wenn sie nicht mit der Filterbedingung übereinstimmen. Daher werden diese Zeilen im ROWS_MATCHED-Wert gezählt.

  • Benutzer und Rollen, denen die USAGE_VIEWER-Datenbankrolle gewährt wurde, können auf diese Ansicht zugreifen. Weitere Informationen dazu finden Sie unter SNOWFLAKE-Datenbankrollen.

  • Diese Ansicht enthält Daten für die 1.000 am längsten ausgeführten Tabellenscans pro Abfrage. Nur äußerst komplexe Abfragen überschreiten diese Anzahl von Scans, sodass Daten selten ausgelassen werden.

Beispiele

Die erste Abfrage ist ein einfaches Funktionsbeispiel, das den Verkürzungsverlauf für Abfragen gegenüber einer bestimmten Tabelle an einem bestimmten Datum zurückgibt, wobei mindestens eine Zeile verkürzt wurde. Jede Zeile des Ergebnisses gehört zu einem bestimmten Zeitfenster von einer Stunde für Abfragen, die an dem in der WHERE-Klausel (INTERVAL_START_TIME) angegebenen Datum abgeschlossen wurden.

Die sensor_data_ts-Tabelle in dieser Abfrage enthält 5356800 Zeilen mit synthetischen Zeitreihendaten. Genau die Hälfte der Zeilen in der Tabelle (2678400) wurde bei allen hier gezeigten Abfragen verkürzt. Die Anzahl der übereinstimmenden Zeilen variiert bei diesen Abfragen.

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

Im folgenden Beispiel wird für jede Tabelle ein „Pruning-Verhältnis“ berechnet, um die Verkürzungseffizienz für Abfragen zu bestimmen, die zu einem bestimmten Zeitpunkt in einem bestimmten Warehouse ausgeführt werden. Die Abfrage gibt auch die Anzahl der gescannten Partitionen pro Abfrage zurück, was Ihnen dabei hilft, die Abfrageleistung in Bezug auf das zu scannende Datenvolumen zu verstehen.

Angesichts der Ergebnisse dieser Abfrage könnten Benutzer zu dem Schluss kommen, dass auf sensor_data_ts zwar viel häufiger zugegriffen als auf sensor_data1, diese Abfragen in der Regel aber weniger Zeit benötigen und viel weniger Mikropartitionen durchsuchen.

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