Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
SVV_QUERY_STATE
Verwenden Sie SVV_QUERY_STATE zur Anzeige von Informationen zur Laufzeit derzeit laufender Abfragen.
Die Ansicht SVV_QUERY_STATE enthält einen Teil der Daten der Tabelle STV_EXEC_STATE.
SVV_QUERY_STATE ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
Einige oder alle Daten in dieser Tabelle sind auch in der SYS-Überwachungsansicht SYS_QUERY_DETAIL zu finden. Die Daten in der SYS-Überwachungsansicht sind so formatiert, dass sie leichter verwendbar und besser verständlich sind. Wir empfehlen Ihnen, für Ihre Abfragen die SYS-Überwachungsansicht zu verwenden.
Anmerkung
Diese Ansicht ist nur verfügbar, wenn bereitgestellte Cluster abgefragt werden.
Tabellenspalten
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
| userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
| query | integer | Abfrage-ID. Kann verwendet werden, um verschiedene andere Systemtabellen und Anzeigen anzufügen. |
| seg | Ganzzahl | Nummer des derzeit ausgeführten Abfragesegments. Eine Abfrage besteht aus mehreren Segmenten, und jedes Segment besteht aus einem oder mehreren Schritten. Abfragesegmente können parallel ausgeführt werden. Jedes Segment wird in einem einzelnen Prozess ausgeführt. |
| Schritt | Ganzzahl | Nummer des derzeit ausgeführten Abfrageschrittes. Ein Schritt ist die kleinste Einheit der Abfragelaufzeit. Jeder Schritt steht für eine diskrete Arbeitseinheit, etwa das Scannen einer Tabelle, die Ausgabe von Ergebnissen oder das Sortieren von Daten. |
| maxtime | Intervall | Maximale Zeitdauer (in Mikrosekunden) für die Ausführung dieses Schritts. |
| avgtime | Intervall | Durchschnittliche Zeitdauer (in Mikrosekunden) für die Ausführung dieses Schritts. |
| rows | bigint | Anzahl der vom laufenden Schritt produzierten Zeilen. |
| bytes | bigint | Anzahl der vom laufenden Schritt produzierten Bytes. |
| cpu | bigint | Zur internen Verwendung. |
| memory | bigint | Zur internen Verwendung. |
| rate_row | double precision | Zeilen-pro-Sekunde-Rate seit dem Beginn der Abfrage, berechnet durch die Summierung der Zeilen und die Division dieses Werts durch die Anzahl der Sekunden zwischen dem Beginn der Abfrage und dem aktuellen Zeitpunkt. |
| rate_byte | double precision | Bytes-pro-Sekunde-Rate seit dem Beginn der Abfrage, berechnet durch die Summierung der Bytes und die Division dieses Werts durch die Anzahl der Sekunden zwischen dem Beginn der Abfrage und dem aktuellen Zeitpunkt. |
| label | character(25) | Abfragebeschriftung: ein Name für den Schritt, wie etwa scan oder sort. |
| is_diskbased | character(1) | Ob dieser Schritt der Abfrage als datenträgerbasierte Operation läuft: true (t) oder false (f). Nur bestimmte Schritte, wie etwa Hash-, Sortierungs- oder Aggregierungsschritte, können auf die Festplatte übertragen werden. Viele Arten von Schritten werden immer im Arbeitsspeicher ausgeführt. |
| workmem | bigint | Größe des Arbeitsspeichers (in Byte), der dem Abfrageschritt zugewiesen wurde. |
| num_parts | integer | Anzahl der Partitionen, in die eine Hash-Tabelle während eines Hash-Schrittes unterteilt wurde. Ein positiver Wert in dieser Spalte bedeutet nicht, dass der Hash-Schritt als festplattenbasierte Operation ausgeführt wird. Prüfen Sie den Wert in der Spalte IS_DISKBASED, um zu sehen, ob der Hash-Schritt festplattenbasiert war. |
| is_rrscan | character(1) | „true“ (t) zeigt an, dass für diesen Schritt ein Scan mit Bereichseinschränkung durchgeführt wurde. Der Standardwert ist „false“ (f). |
| is_delayed_scan | character(1) | „true“ (t) zeigt an, dass für diesen Schritt ein verzögerter Scan durchgeführt wurde. Der Standardwert ist „false“ (f). |
Beispielabfragen
Ermittlung der Verarbeitungszeit einer Abfrage nach Schritten
Die folgende Abfrage zeigt, wie lange die Ausführung jedes Schritts der Abfrage mit der Abfrage-ID 279 dauerte und wie viele Datenzeilen Amazon Redshift verarbeitet hat:
select query, seg, step, maxtime, avgtime, rows, label from svv_query_state where query = 279 order by query, seg, step;
Diese Abfrage ruft die Verarbeitungsinformationen zu Abfrage 279 aus, wie die folgende Beispielausgabe zeigt:
query | seg | step | maxtime | avgtime | rows | label ------+---------+------+---------+---------+---------+------------------- 279 | 3 | 0 | 1658054 | 1645711 | 1405360 | scan 279 | 3 | 1 | 1658072 | 1645809 | 0 | project 279 | 3 | 2 | 1658074 | 1645812 | 1405434 | insert 279 | 3 | 3 | 1658080 | 1645816 | 1405437 | distribute 279 | 4 | 0 | 1677443 | 1666189 | 1268431 | scan 279 | 4 | 1 | 1677446 | 1666192 | 1268434 | insert 279 | 4 | 2 | 1677451 | 1666195 | 0 | aggr (7 rows)
Ermittlung, ob zurzeit aktive Abfragen auf dem Datenträger ausgeführt werden
Die folgende Abfrage zeigt, ob derzeit aktive Abfragen auf der Festplatte ausgeführt werden:
select query, label, is_diskbased from svv_query_state where is_diskbased = 't';
Diese Beispielausgabe zeigt alle derzeit auf der Festplatte ausgeführten aktiven Abfragen:
query | label | is_diskbased -------+--------------+-------------- 1025 | hash tbl=142 | t (1 row)