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.
SVCS_ALERT_EVENT_LOG
Zeichnet eine Warnung auf, wenn der Abfrageoptimierer Bedingungen identifiziert, die auf Leistungsprobleme hinweisen können. Diese Ansicht wird aus der STL_ALERT_EVENT_LOG-Systemtabelle erzeugt, zeigt aber keine Slice-Ebene für Abfragen an, die auf einem Nebenläufigkeitsskalierungs-Cluster ausgeführt werden. Verwenden Sie die Tabelle SVCS_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.
Anmerkung
Systemansichten mit dem Präfix SVCS enthalten Details zu Abfragen auf den Haupt- und Nebenläufigkeitsskalierungs-Clustern. Die Ansichten sind mit denen mit dem Präfix STL vergleichbar, außer dass die STL-Tabellen nur Informationen für Abfragen bereitstellen, die auf dem Haupt-Cluster ausgeführt werden.
SVCS_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.
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. |
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 SVCS_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. SVCS_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 Systemtabelle 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 svcs_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)