Schemas:

ACCOUNT_USAGE, READER_ACCOUNT_USAGE

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: success (Erfolg), fail (Fehler), incident (Vorfall).

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 select * from . . . eine Menge von Ergebnissen im Tabellenformat für jedes Feld in der Auswahl liefern. . . Im Allgemeinen repräsentiert das Ergebnisobjekt das, was als Ergebnis der Abfrage erzeugt wird, und BYTES_WRITTEN_TO_RESULT steht für die Größe des zurückgegebenen Ergebnisses.

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 major_release.minor_release.patch_release (<Hauptversion>.<Nebenversion>.<Patchversion>).

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 APPLICATION, DATABASE_ROLE oder ROLE ausgeführt wurde.

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_HASH verwendet wird.

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 QUERY_PARAMETERIZED_HASH verwendet wird.

OWNER_ROLE_TYPE

TEXT

Der Typ der Rolle, die Eigentümer des Objekts ist, entweder ROLE oder DATABASE_ROLE. . Wenn eine Snowflake Native App Eigentümer des Objekts ist, ist der Wert APPLICATION. . Wenn Sie das Objekt löschen, gibt Snowflake NULL zurück, da ein gelöschtes Objekt keine Eigentümerrolle hat.

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.