- Schemas:
QUERY_HISTORY-Ansicht¶
Diese Account Usage-Ansicht kann verwendet werden, um den Snowflake-Abfrageverlauf innerhalb der letzten 365 Tage (1 Jahr) nach verschiedenen Dimensionen (Zeitbereich, Sitzung, Benutzer, Warehouse usw.) abzufragen.
Die Ansicht ist in den Schemas ACCOUNT_USAGE und READER_ACCOUNT_USAGE mit folgenden Unterschieden verfügbar:
Die folgende Spalte ist nur in der Leserkontoansicht verfügbar:
READER_ACCOUNT_NAME
Die folgenden Spalten werden nicht in der Leserkontoansicht angezeigt:
QUERY_ACCELERATION_BYTES_SCANNED
QUERY_ACCELERATION_PARTITIONS_SCANNED
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR
Siehe auch:
QUERY_HISTORY , QUERY_HISTORY_BY_* (Information Schema-Tabellenfunktion) Abfrageaktivität mit Abfrageverlauf überwachen (Snowsight-Dashboard)
Spalten¶
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
READER_ACCOUNT_NAME |
TEXT |
Name des Leserkontos, in dem die SQL-Anweisung ausgeführt wurde. |
QUERY_ID |
TEXT |
Interner/vom System generierter Bezeichner für die SQL-Anweisung. |
QUERY_TEXT |
TEXT |
Text der SQL-Anweisung. Das Limit beträgt 100K Zeichen. SQL-Anweisungen, die mehr als 100K Zeichen enthalten, werden abgeschnitten. |
DATABASE_ID |
NUMBER |
Interner/vom System generierter Bezeichner für die Datenbank, die verwendet wurde. |
DATABASE_NAME |
TEXT |
Datenbank, die bei der Kompilierung im Kontext der Abfrage angegeben wurde. |
SCHEMA_ID |
NUMBER |
Interner/vom System generierter Bezeichner für das Schema, die verwendet wurde. |
SCHEMA_NAME |
TEXT |
Schema, das bei der Kompilierung im Kontext der Abfrage angegeben wurde. |
QUERY_TYPE |
TEXT |
DML, Abfrage usw. Wenn die Abfrage fehlgeschlagen ist, kann der Abfragetyp UNKNOWN lauten. |
SESSION_ID |
NUMBER |
Sitzung, die die Anweisung ausgeführt hat. |
USER_NAME |
TEXT |
Benutzer, der die Abfrage ausgegeben hat. |
ROLE_NAME |
TEXT |
Rolle, die zum Zeitpunkt der Abfrage in der Sitzung aktiv war. |
WAREHOUSE_ID |
NUMBER |
Interner/vom System generierter Bezeichner für das Warehouse, das verwendet wurde. |
WAREHOUSE_NAME |
TEXT |
Warehouse, in dem die Abfrage ggf. ausgeführt wurde. |
WAREHOUSE_SIZE |
TEXT |
Größe des Warehouses, als diese Anweisung ausgeführt wurde. |
WAREHOUSE_TYPE |
TEXT |
Typ des Warehouse, als diese Anweisung ausgeführt wurde. |
CLUSTER_NUMBER |
NUMBER |
Der Cluster (in einem Multi-Cluster-Warehouse), für den diese Anweisung ausgeführt wurde. |
QUERY_TAG |
TEXT |
Abfrage-Tag, das für diese Anweisung über den Sitzungsparameter QUERY_TAG festgelegt wird. |
EXECUTION_STATUS |
TEXT |
Ausführungsstatus der Abfrage. Gültige Werte: |
ERROR_CODE |
NUMBER |
Fehlercode, wenn die Abfrage einen Fehler zurückgegeben hat |
ERROR_MESSAGE |
TEXT |
Fehlermeldung, wenn die Abfrage einen Fehler zurückgegeben hat |
START_TIME |
TIMESTAMP_LTZ |
Startzeit der Anweisung (in der lokalen Zeitzone) |
END_TIME |
TIMESTAMP_LTZ |
Endzeit der Anweisung (in der lokalen Zeitzone) |
TOTAL_ELAPSED_TIME |
NUMBER |
Verstrichene Zeit (in Millisekunden) |
BYTES_SCANNED |
NUMBER |
Anzahl der von dieser Anweisung gescannten Bytes. |
PERCENTAGE_SCANNED_FROM_CACHE |
FLOAT |
Prozentsatz der Daten, die vom lokalen Festplattencache gescannt wurden. Der Wertebereich reicht von 0,0 bis 1,0. Sie können mit 100 multiplizieren, um einen wahren Prozentsatz zu erhalten. |
BYTES_WRITTEN |
NUMBER |
Anzahl der Bytes, die geschrieben wurden (z. B. beim Laden in eine Tabelle). |
BYTES_WRITTEN_TO_RESULT |
NUMBER |
Anzahl der Bytes, die in ein Ergebnisobjekt geschrieben wurden. Beispielsweise würde |
BYTES_READ_FROM_RESULT |
NUMBER |
Anzahl der Bytes, die aus einem Ergebnisobjekt gelesen wurden. |
ROWS_PRODUCED |
NUMBER |
Anzahl der Zeilen, die von dieser Anweisung erzeugt wurden. |
ROWS_INSERTED |
NUMBER |
Anzahl der Zeilen, die von der Abfrage eingefügt wurden. |
ROWS_UPDATED |
NUMBER |
Anzahl der Zeilen, die von der Abfrage aktualisiert wurden. |
ROWS_DELETED |
NUMBER |
Anzahl der Zeilen, die von der Abfrage gelöscht wurden. |
ROWS_UNLOADED |
NUMBER |
Anzahl der Zeilen, die während des Datenexports entladen wurden. |
BYTES_DELETED |
NUMBER |
Anzahl der Bytes, die von der Abfrage gelöscht wurden. |
PARTITIONS_SCANNED |
NUMBER |
Anzahl der gescannten Mikropartitionen. |
PARTITIONS_TOTAL |
NUMBER |
Gesamtzahl der Mikropartitionen aller Tabellen, die in dieser Abfrage enthalten sind. |
BYTES_SPILLED_TO_LOCAL_STORAGE |
NUMBER |
Datenmenge, die auf eine lokale Festplatte übertragen wurde. |
BYTES_SPILLED_TO_REMOTE_STORAGE |
NUMBER |
Datenmenge, die auf eine externe Festplatte übertragen wurde. |
BYTES_SENT_OVER_THE_NETWORK |
NUMBER |
Datenmenge, die über das Netzwerk gesendete wurde. |
COMPILATION_TIME |
NUMBER |
Kompilierungszeit (in Millisekunden) |
EXECUTION_TIME |
NUMBER |
Ausführungsdauer (in Millisekunden) |
QUEUED_PROVISIONING_TIME |
NUMBER |
Zeit (in Millisekunden), die in der Warehouse-Warteschlange auf die Bereitstellung von Warehouse-Computeressourcen gewartet wurde, weil Warehouses erstellt, fortgesetzt oder in der Größe geändert wurden. |
QUEUED_REPAIR_TIME |
NUMBER |
Zeit (in Millisekunden), die in der Warehouse-Warteschlange gewartet wurde, bis Computeressourcen im Warehouse repariert waren. |
QUEUED_OVERLOAD_TIME |
NUMBER |
Zeit (in Millisekunden), die in der Warehouse-Warteschlange gewartet wurde, weil das Warehouse durch die aktuelle Abfrage-Workload überlastet war. |
TRANSACTION_BLOCKED_TIME |
NUMBER |
Zeit (in Millisekunden), während der eine Sperre durch eine gleichzeitige DML-Operation aktiv war. |
OUTBOUND_DATA_TRANSFER_CLOUD |
TEXT |
Ziel-Cloudanbieter für Anweisungen, die Daten in eine andere Region und/oder Cloud entladen. |
OUTBOUND_DATA_TRANSFER_REGION |
TEXT |
Zielregion für Anweisungen, die Daten in eine andere Region und/oder Cloud entladen. |
OUTBOUND_DATA_TRANSFER_BYTES |
NUMBER |
Anzahl der Bytes, die mit Anweisungen übertragen wurden, die Daten in eine andere Region und/oder Cloud entladen. |
INBOUND_DATA_TRANSFER_CLOUD |
TEXT |
Quell-Cloudanbieter der Anweisungen, die Daten aus einer anderen Region und/oder Cloud laden. |
INBOUND_DATA_TRANSFER_REGION |
TEXT |
Quellregion von Anweisungen, die Daten aus einer anderen Region und/oder Cloud laden. |
INBOUND_DATA_TRANSFER_BYTES |
NUMBER |
Anzahl der Bytes, die bei einer Replikationsoperation von einem anderen Konto übertragen wurden. Das Quellkonto kann sich in derselben Region oder in einer anderen Region als das aktuelle Konto befinden. |
LIST_EXTERNAL_FILES_TIME |
NUMBER |
Zeit (in Millisekunden) für das Auflisten externer Dateien. |
CREDITS_USED_CLOUD_SERVICES |
NUMBER |
Anzahl der Credits, die für Clouddienste verbraucht wurden. Dieser Wert berücksichtigt nicht die Anpassung für Clouddienste und kann daher höher sein als Ihre tatsächlich abgerechneten Credits. Um festzustellen, wie viele Credits tatsächlich in Rechnung gestellt wurden, führen Sie Abfragen auf der Ansicht METERING_DAILY_HISTORY aus. |
RELEASE_VERSION |
TEXT |
Release-Version im Format |
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS |
NUMBER |
Gesamtzahl, mit der durch diese Abfrage Remotedienste aufgerufen wurden. Weitere wichtige Details dazu finden Sie in den Nutzungshinweisen. |
EXTERNAL_FUNCTION_TOTAL_SENT_ROWS |
NUMBER |
Gesamtzahl der Zeilen, die von dieser Abfrage bei allen Aufrufen an alle Remotedienste gesendet wurden. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS |
NUMBER |
Gesamtzahl der Zeilen, die von dieser Abfrage bei allen Aufrufen von allen Remotediensten empfangen wurden. |
EXTERNAL_FUNCTION_TOTAL_SENT_BYTES |
NUMBER |
Gesamtzahl der Bytes, die von dieser Abfrage bei allen Aufrufen an alle Remotedienste gesendet wurden. |
EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES |
NUMBER |
Gesamtzahl der Bytes, die von dieser Abfrage bei allen Aufrufen von allen Remotediensten empfangen wurden. |
QUERY_LOAD_PERCENT |
NUMBER |
Der ungefähre Prozentsatz der aktiven Computeressourcen im Warehouse für diese Abfrageausführung. |
IS_CLIENT_GENERATED_STATEMENT |
BOOLEAN |
Gibt an, ob die Abfrage von einem Client generiert wurde. |
QUERY_ACCELERATION_BYTES_SCANNED |
NUMBER |
Anzahl der vom Abfragebeschleunigungsdienst gescannten Bytes. |
QUERY_ACCELERATION_PARTITIONS_SCANNED |
NUMBER |
Anzahl der vom Abfragebeschleunigungsdienst gescannten Partitionen. |
QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR |
NUMBER |
Oberes Limit des Skalierungsfaktors, der für eine Abfrage von Vorteil wäre. |
TRANSACTION_ID |
NUMBER |
ID der Transaktion, die die Anweisung enthält, oder 0, wenn die Anweisung nicht innerhalb einer Transaktion ausgeführt wird. |
CHILD_QUERIES_WAIT_TIME |
NUMBER |
Zeit (in Millisekunden), die bei Aufruf einer memoisierbaren Funktion bis zum Abschluss der zwischengespeicherten Suche benötigt wird. |
ROLE_TYPE |
VARCHAR |
Gibt an, ob die Abfrage von einer Rolle vom Typ |
QUERY_HASH |
TEXT |
Der Hash-Wert wird auf der Grundlage des kanonisierten SQL-Textes berechnet. |
QUERY_HASH_VERSION |
NUMBER |
Die Version der Logik, die zur Berechnung von |
QUERY_PARAMETERIZED_HASH |
TEXT |
Der Hash-Wert, der auf Grundlage der parametrisierten Abfrage berechnet wird. |
QUERY_PARAMETERIZED_HASH_VERSION |
NUMBER |
Die Version der Logik, die zur Berechnung von |
OWNER_ROLE_TYPE |
TEXT |
Der Typ der Rolle, die Eigentümer des Objekts ist, entweder |
Nutzungshinweise¶
Allgemeines¶
Die Latenzzeit der Ansicht kann bis zu 45 Minuten betragen.
Die Werte für die Spalten EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES und EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES werden von vielen Faktoren beeinflusst, darunter:
Anzahl der externen Funktionen in der Anweisung SQL.
Anzahl der Zeilen pro Batch, die an jeden Remotedienst gesendet werden.
Anzahl der Wiederholungen aufgrund vorübergehender Fehler (z. B. weil eine Antwort nicht innerhalb der erwarteten Zeit empfangen wurde).
Hybridtabellen¶
Die folgenden Hinweise beziehen sich auf die Ausführung von Abfragen auf Hybridtabellen unter Verwendung von QUERY_HISTORY-Ansichten.
Für Abfragen mit kurzer Ausführungszeit, die ausschließlich auf Hybridtabellen angewendet werden, werden in dieser Ansicht und in QUERY_HISTORY (Information Schema-Tabellenfunktion) keine Datensätze mehr generiert. Um solche Abfragen zu überwachen, verwenden Sie AGGREGATE_QUERY_HISTORY. Mit dieser Ansicht können Sie operative Workloads mit hohem Durchsatz für Trends und Themen leichter überwachen.
Auch für Abfragen mit kurzer Ausführungszeit, die ausschließlich auf Hybridtabellen angewendet werden, wird kein Query Profile mehr bereitgestellt, das Sie in Snowsight prüfen können.
Abfragen auf Hybridtabelle generieren nur dann einen Datensatz in der Ansicht QUERY_HISTORY und ein Query Profile, wenn eine der folgenden Bedingungen erfüllt ist:
Eine Abfrage wird auf einem beliebigen Tabellentyp mit Ausnahme von Hybridtabellen ausgeführt. Diese Bedingung stellt sicher, dass es keine Verhaltensänderung für bestehende Nicht-Unistore-Workloads gibt.
Eine Abfrage schlägt mit einem EXECUTION_STATUS von
failed_with_incident
fehl (siehe QUERY_HISTORY). Diese Bedingung stellt sicher, dass Sie die fehlgeschlagene Abfrage untersuchen und melden können, um Unterstützung zu erhalten.Die Ausführung einer Abfrage dauert länger als etwa 500 Millisekunden. Diese Bedingung stellt sicher, dass Sie Leistungsprobleme bei langsamen Abfragen untersuchen können.
Die Größe des Abfrageergebnisses ist zu groß.
Eine Abfrage ist mit einer Snowflake-Transaktion verbunden.
Eine Abfrage enthält eine Systemfunktion mit Nebeneffekten.
Eine Abfrage ist nicht einer der folgenden Anweisungstypen: SELECT, INSERT, DELETE, UPDATE, MERGE.
Eine Abfrage wird über SnowSQL, Snowsight oder die klassische Konsole ausgeführt. Diese Bedingung stellt sicher, dass Sie manuell ein vollständiges Query Profile erstellen können, um Leistungsprobleme für eine bestimmte Abfrage zu untersuchen, auch wenn diese nicht als langlaufend eingestuft ist.
Auch wenn eine Abfrage keine der oben genannten Bedingungen erfüllt, können Abfragen regelmäßig stichprobenartig abgerufen werden, um einen Datensatz in der QUERY_HISTORY-Ansicht und ein Query Profile zu generieren und Sie so bei Ihren Untersuchungen zu unterstützen.