Schemas:

ACCOUNT_USAGE

Ansicht COLUMN_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, einschließlich einiger Details auf Spaltenebene, z. B. dem „Zugriffstyp“ und der Ausdrücke zur Suchoptimierung des Kandidaten, die potenziell von Vorteil sind.

Sie können diese Ansicht in Kombination mit der Ansicht TABLE_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.

Jede Zeile in dieser Ansicht stellt den Verlauf der Abfrageverkürzung für eine bestimmte Spalte innerhalb eines bestimmten Zeitintervalls dar. Die Daten werden pro Spalte, pro Tabelle, pro Intervall aggregiert und enthalten Metriken, z. B. 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 und abgeschlossen wurden.

INTERVAL_END_TIME

TIMESTAMP_LTZ

Ende des Zeitraums (auf die Stunde genau), in dem die Abfragen ausgeführt und abgeschlossen 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.

COLUMN_ID

NUMBER

Interner/vom System generierter Bezeichner für die Spalte, auf die von der abgefragten Tabelle aus zugegriffen wird.

COLUMN_NAME

VARCHAR

Name der Spalte, auf die von der abgefragten Tabelle aus zugegriffen wurde.

VARIANT_PATH

VARCHAR

Pfad zu den semistrukturierten Daten, auf die zugegriffen wird (falls zutreffend). NULL, wenn die Spalte, auf die zugegriffen wurde, keinen semistrukturierten Datentyp aufweist.

ACCESS_TYPE

VARCHAR

Art des Zugriffs auf die Spalte (WHERE- oder JOIN-Bedingung).

NUM_QUERIES

NUMBER

Anzahl der Abfragen, die in diesem Zeitraum mit diesem spezifischen QUERY_HASH -Wert, die unter Verwendung dieses Warehouses auf diese Spalte (und ggf. den Variantenpfad) in dieser Tabelle mit diesem Zugriffstyp 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.

SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS

ARRAY

Liste der unterstützten Suchoptimierungsausdrücke in dieser Spalte, die potenziell das Durchsuchen dieser Tabelle nach den durch NUM_QUERIESdefinierten Abfragen beschleunigen könnten.

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.

  • 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.

  • Die ACCESS_TYPE-Spalte enthält einen der folgenden Werte an:

    • WHERE: Die Spalte wird in einer Filterbedingung in der WHERE-Klausel verwendet.

    • JOIN: Die Spalte wird in einer Bedingung für einen JOIN-Vorgang verwendet.

  • Das in dieser Ansicht dargestellte Zugriffsverhalten spiegelt den tatsächlich ausgeführten Abfrageplan wider, der vom ursprünglichen Abfragetext abweichen kann. Wenn beispielsweise eine HAVING-Klausel nicht auf aggregierte Ergebnisse verweist, die von der GROUP BY-Klausel produziert werden, könnte sie optimiert und als WHERE-Klausel umgeschrieben werden, und der ACCESS_TYPE-Wert wird WHERE lauten.

  • 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.

  • Derzeit schlägt die SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS-Spalte nur die EQUALITY- und SUBSTRING -Suchmethoden vor.

  • 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.

Beispiel

Rückgabe des Pruning-Verlaufs auf Spaltenebene für Abfragen einer bestimmten Tabelle:

SELECT interval_start_time, table_name, column_name, access_type, num_queries,
    rows_scanned, rows_pruned, rows_matched,
    search_optimization_supported_expressions::VARCHAR as search_optim
  FROM SNOWFLAKE.ACCOUNT_USAGE.COLUMN_QUERY_PRUNING_HISTORY
  WHERE interval_start_time like '2025-04-24%' AND table_name='SENSOR_DATA_TS'
  ORDER BY 3, 1;
Copy
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+
| INTERVAL_START_TIME           | TABLE_NAME     | COLUMN_NAME | ACCESS_TYPE | NUM_QUERIES | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED | SEARCH_OPTIM                |
|-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------|
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       394106 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |       820272 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+

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 für eine Reihe von Abfragen, die die device_id- und temperature-Spalten in den Bedingungen der WHERE-Klausel gefiltert haben, verkürzt.

Die device_id-Spalte wird als Ziel für eine Suchoptimierung empfohlen, die die EQUALITY-Suchmethode v.erwendet Tabellenscans könnten von der Hinzufügung dieser Suchoptimierung profitieren.

Tipp

Sie können die ARRAY_TO_STRING-Funktion verwenden, um die SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS-Spalte zur besseren Lesbarkeit in eine Zeichenfolge zu konvertieren. Beispiel:

ARRAY_TO_STRING(search_optimization_supported_expressions, ', ')
Copy