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.
STL_ALERT_EVENT_LOG
Zeichnet eine Warnung auf, wenn der Abfrageoptimierer Bedingungen identifiziert, die auf Leistungsprobleme hinweisen können. Verwenden Sie die Ansicht STL_ALERT_EVENT_LOG, um Möglichkeiten zur Verbesserung der Abfrageleistung zu identifizieren.
Eine Abfrage besteht aus mehreren Segmenten, und jedes Segment besteht aus einem oder mehreren Schritten. Weitere Informationen finden Sie unter Verarbeitung von Abfragen.
STL_ALERT_EVENT_LOG 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.
Anmerkung
STL_ALERT_EVENT_LOG enthält nur Abfragen, die auf den bereitgestellten Hauptclustern ausgeführt werden. Es enthält keine Abfragen, die auf Clustern zur Parallelitätsskalierung oder in serverlosen Namespaces ausgeführt werden. Für den Zugriff auf Erläuterungspläne für Abfragen, die sowohl auf Hauptclustern, Clustern zur Parallelitätsskalierung als auch auf serverlosen Namespaces ausgeführt werden, empfehlen wir die Verwendung der SYS-Überwachungsansicht. SYS_QUERY_DETAIL Die Daten in der SYS-Überwachungsansicht sind so formatiert, dass sie leichter verwendbar und besser verständlich sind.
Tabellenspalten
Spaltenname | Datentyp | Beschreibung |
---|---|---|
userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
query | integer | Abfrage-ID. Die Abfrage-Spalte kann verwendet werden, um andere Systemtabellen und Anzeigen anzufügen. |
slice | integer | Die Nummer, die das Slice angibt, in dem die Abfrage ausgeführt wurde. |
segment | integer | Zahl, mit der das Abfrage-Segment identifiziert wird. |
Schritt | integer | Abfrageschritt, der ausgeführt wurde. |
pid | integer | Die mit der Anweisung und dem Slice verbundene Prozess-ID. Dieselbe Abfrage kann mehrere haben, PIDs wenn sie auf mehreren Segmenten ausgeführt wird. |
xid | bigint | Mit der Anweisung verbundene Transaktions-ID. |
event | character(1024) | Beschreibung des Warnungsereignisses. |
solution | character(1024) | Empfohlene Lösung. |
event_time | Zeitstempel | Zeitpunkt des Beginns der Abfrage, nach UTC. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358 . |
Nutzungshinweise
Sie können mit STL_ALERT_EVENT_LOG potenzielle Probleme in Ihren Abfragen identifizieren und dann den Vorgehensweisen in Optimierung der Abfrageleistung folgen, um Ihr Datenbankdesign zu optimieren und Ihre Abfragen neu zu gestalten. STL_ALERT_EVENT_LOG zeichnet die folgenden Warnungen auf:
-
Fehlende Statistik
Es fehlen statistische Daten. Führen Sie nach Datenladevorgängen oder größeren Aktualisierungen ANALYZE aus, und verwenden Sie STATUPDATE mit COPY-Operationen. Weitere Informationen finden Sie unter Bewährte Methoden für die Gestaltung von Abfragen mit Amazon Redshift.
-
Verschachtelte Schleife
Eine verschachtelte Schleife ist normalerweise ein cartesisches Produkt. Prüfen Sie Ihre Abfrage, um sicherzustellen, dass alle beteiligten Tabellen effizient verbunden sind.
-
Sehr selektiver Filter
Das Verhältnis der zurückgegebenen zu den gescannten Zeilen ist kleiner als 0,05. Bei den gescannten Zeilen handelt es sich um den Wert von
rows_pre_user_filter
und bei den zurückgegebenen Zeilen um den Wert der Zeilen in der Systemansicht STL_SCAN. Zeigt an, dass die Abfrage eine ungewöhnlich große Zahl von Zeilen scannt, um den Ergebnissatz zu bestimmen. Die Ursache können fehlende oder inkorrekte Sortierschlüssel sein. Weitere Informationen finden Sie unter Schlüssel sortieren. -
Übermäßig viele Geisterzeilen
Ein Scan übersprang eine sehr große Zahl von Zeilen, die als gelöscht markiert sind, jedoch nicht bereinigt wurden, oder es wurden Zeilen eingefügt, aber nicht bestätigt (Commit). Weitere Informationen finden Sie unter Bereinigen von Tabellen.
-
Large-Verteilung
Es wurden mehr als 1.000.000 Zeilen für Hash-Join oder Aggregierung neu verteilt. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.
-
Large-Broadcast
Für mehr als 1.000.000 Zeilen wurde ein Broadcast für Hash-Join durchgeführt. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.
-
Serielle Ausführung
In dem Abfrageplan wird ein Umverteilungsstil von DS_DIST_ALL_INNER angezeigt, der die serielle Ausführung erzwingt, da die gesamte innere Tabelle an einen einzelnen Knoten umverteilt wurde. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.
Beispielabfragen
Die folgende Abfrage zeigt Warnungsereignisse für vier Abfragen an.
SELECT query, substring(event,0,25) as event, substring(solution,0,25) as solution, trim(event_time) as event_time from stl_alert_event_log order by query; query | event | solution | event_time -------+-------------------------------+------------------------------+--------------------- 6567 | Missing query planner statist | Run the ANALYZE command | 2014-01-03 18:20:58 7450 | Scanned a large number of del | Run the VACUUM command to rec| 2014-01-03 21:19:31 8406 | Nested Loop Join in the query | Review the join predicates to| 2014-01-04 00:34:22 29512 | Very selective query filter:r | Review the choice of sort key| 2014-01-06 22:00:00 (4 rows)