Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie die Tabelle STV_RECENTS, um Informationen zu den derzeit aktiven und kürzlich ausgeführten Abfragen gegen eine Datenbank zu erhalten.
STV_RECENTS 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_HISTORY 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.
Fehlerbehebung mit STV_RECENTS
STV_RECENTS ist besonders hilfreich, um festzustellen, ob eine Abfrage oder Sammlung von Abfragen gerade ausgeführt wird oder abgeschlossen ist. Dabei wird auch die Dauer angezeigt, wie lange eine Abfrage ausgeführt wurde. Dies ist hilfreich, um ein Gefühl dafür zu bekommen, welche Abfragen lange andauern.
Sie können STV_RECENTS mit anderen Systemansichten verbinden, z. B. STV_INFLIGHT, um zusätzliche Metadaten über laufende Abfragen zu sammeln. (Im Abschnitt mit den Beispielabfragen finden Sie ein Beispiel, das die Vorgehensweise zeigt.) Sie können auch zurückgegebene Datensätze aus dieser Ansicht zusammen mit den Überwachungsfunktionen in der Amazon-Redshift-Konsole für die Fehlerbehebung in Echtzeit verwenden.
Zu den Systemansichten, die STV_RECENTS ergänzen, gehören STL_QUERYTEXT, die den Abfragetext für SQL-Befehle abruft, und SVV_QUERY_INFLIGHT, die STV_INFLIGHT mit STL_QUERYTEXT verbindet.
Tabellenspalten
Spaltenname | Datentyp | Beschreibung |
---|---|---|
userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
status | character(20) | Abfragestatus. Gültige Werte sind Running , Done . |
starttime | timestamp | Der Zeitpunkt des Beginns der Abfrage. |
duration | integer | Anzahl der Mikrosekunden seit dem Beginn der Sitzung. |
user_name | character(50) | Name des Benutzers, der den Prozess ausgeführt hat. |
db_name | character(50) | Name der Datenbank. |
query | character(600) | Abfragetext, bis zu 600 Zeichen. Darüber hinaus gehende Zeichen werden abgeschnitten. |
pid | integer | Prozess-ID für die zu der Abfrage gehörende Sitzung; diese ist immer -1 für abgeschlossene Abfragen. |
Beispielabfragen
Um festzustellen, welche Abfragen derzeit für die Datenbank ausgeführt werden, geben Sie die folgende Abfrage ein:
select user_name, db_name, pid, query
from stv_recents
where status = 'Running';
Die Beispielausgabe unten zeigt eine einzelne Abfrage, die auf der TICKIT-Datenbank ausgeführt wird:
user_name | db_name | pid | query
----------+---------+---------+-------------
dwuser | tickit | 19996 |select venuename, venueseats from
venue where venueseats > 50000 order by venueseats desc;
Das folgende Beispiel gibt eine Liste von Abfragen (falls vorhanden) zurück, die derzeit ausgeführt werden oder in einer Warteschlange auf ihre Ausführung warten:
select * from stv_recents where status<>'Done';
status | starttime | duration |user_name|db_name| query | pid
-------+---------------------+----------+---------+-------+-----------+------
Running| 2010-04-21 16:11... | 281566454| dwuser |tickit | select ...| 23347
Diese Abfrage gibt nur Ergebnisse zurück, wenn Sie eine Reihe gleichzeitiger Abfragen ausführen und sich einige davon in einer Warteschlange befinden.
Das folgende Beispiel ist eine Erweiterung des vorherigen Beispiels. In diesem Fall werden tatsächlich ausgeführte (nicht wartende) Abfragen aus dem Ergebnis ausgeschlossen:
select * from stv_recents where status<>'Done'
and pid not in (select pid from stv_inflight);
...
Weitere Tipps zur Fehlerbehebung bei der Abfrageleistung finden Sie unter Fehlerbehebung bei Abfragen.