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