SVL_QUERY_REPORT - Amazon Redshift

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.

SVL_QUERY_REPORT

Amazon Redshift erstellt die Ansicht SVL_QUERY_REPORT aus einer UNION einer Reihe von Amazon-Redshift-STL-Systemtabellen, um Informationen zu ausgeführten Abfrageschritten anzuzeigen.

Diese Ansicht schlüsselt die Informationen zu ausgeführten Abfragen nach Slice und Schritt auf; dies ist nützlich für die Behebung von Slice- und Knoten-Problemen im Amazon-Redshift-Cluster.

SVL_QUERY_REPORT 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.

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.
slice integer Daten-Slice der Ausführung des Schritts.
segment integer

Segmentnummer.

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 integer Abfrageschritt, der abgeschlossen wurde.
start_time timestamp Genaue Uhrzeit in UTC, zu der die Ausführung des Segments begonnen wurde, mit 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2012-12-12 11:29:19.131358
end_time timestamp Genaue Uhrzeit in UTC, zu der die Ausführung des Segments abgeschlossen wurde, mit 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2012-12-12 11:29:19.131467
elapsed_time bigint Zeit (in Mikrosekunden) für die Ausführung des Segments.
rows bigint Anzahl der von dem Schritt (pro Slice) produzierten Zeilen. Diese Zahl steht für die Anzahl der Zeilen für den Slice, die aus der Ausführung des Schritts resultieren, nicht für die Anzahl der Zeilen, die von dem Schritt empfangen oder verarbeitet wurden. Anders ausgedrückt ist dies die Anzahl der Zeilen, die den Schritt überstehen und an den nächsten Schritt weitergegeben werden.
bytes bigint Anzahl der von dem Schritt (pro Slice) produzierten Bytes.
label char(256) Schritt-Etikett, bestehend aus dem Namen eines Abfrageschritts und, falls anwendbar, der Tabellen-ID und dem Tabellennamen (zum Beispiel )., scan tbl=100448 name =user). Dreistellige Tabellen-IDs beziehen sich normalerweise auf Scans temporärer Tabellen. Wenn Sie tbl=0 sehen, bezieht sich dies auf einen Scan eines konstanten Werts.
is_diskbased character(1) Ob dieser Schritt der Abfrage als festplattenbasierte Operation ausgeführt wurde: 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. Dies ist der query_working_mem-Schwellenwert, der während der Ausführung zur Verwendung zugewiesen wird, nicht die Speichermenge, die tatsächlich genutzt wurde.
is_rrscan character(1) „true“ (t) zeigt an, dass für diesen Schritt ein Scan mit Bereichseinschränkung durchgeführt wurde.
is_delayed_scan character(1) „true“ (t) zeigt an, dass für diesen Schritt ein verzögerter Scan durchgeführt wurde.
rows_pre_filter bigint Bei Scans permanenter Tabellen die Gesamtzahl der Zeilen, die nach der Filterung der zur Löschung markierten Zeilen ausgegeben wurden (Geisterzeilen), jedoch vor der Anwendung benutzerdefinierter Abfragefilter.

Beispielabfragen

Die folgende Abfrage zeigt die Datenverzerrung der von der Abfrage mit der Abfrage-ID 279 ausgegebenen Zeilen. Verwenden Sie diese Abfrage, um festzustellen, ob die Datenbank gleichmäßig über die Slices in dem Data Warehouse-Cluster verteilt sind:

select query, segment, step, max(rows), min(rows), case when sum(rows) > 0 then ((cast(max(rows) -min(rows) as float)*count(rows))/sum(rows)) else 0 end from svl_query_report where query = 279 group by query, segment, step order by segment, step;

Diese Abfrage sollte der folgenden Beispielausgabe ähnliche Daten ausgeben:

query | segment | step | max | min | case ------+---------+------+----------+----------+---------------------- 279 | 0 | 0 | 19721687 | 19721687 | 0 279 | 0 | 1 | 19721687 | 19721687 | 0 279 | 1 | 0 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 1 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 4 | 986085 | 986084 | 1.01411202804304e-06 279 | 2 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 2 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 3 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 1 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 2 | 1 | 1 | 0 279 | 5 | 0 | 1 | 1 | 0 279 | 5 | 1 | 1 | 1 | 0 279 | 6 | 0 | 20 | 20 | 0 279 | 6 | 1 | 1 | 1 | 0 279 | 7 | 0 | 1 | 1 | 0 279 | 7 | 1 | 0 | 0 | 0 (19 rows)