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

STL_QUERY_METRICS

Enthält Metrikinformationen wie die Anzahl der verarbeiteten Zeilen, die CPU Verwendung, die Eingabe/Ausgabe und die Festplattennutzung für Abfragen, deren Ausführung in benutzerdefinierten Abfragewarteschlangen (Serviceklassen) abgeschlossen wurde. Zur Anzeige von Metriken für derzeit ausgeführte aktive Abfragen vgl. die Systemansicht STV_QUERY_METRICS.

Die Abfragemetriken werden in Intervallen von einer Sekunde erfasst. Daher können verschiedene Ausführungen einer Abfrage leicht abweichende Zeiten ergeben. Abfragesegmente, die in weniger als einer Sekunde ausgeführt werden, werden möglicherweise nicht aufgezeichnet.

STL_ QUERY _ METRICS verfolgt und aggregiert Metriken auf Abfrage-, Segment- und Schrittebene. Informationen zu Abfragesegmenten und Schritten finden Sie unter Workflow der Abfrageplanung und -ausführung. Viele Metriken (wie etwa max_rows, cpu_time u. dgl.) werden über Knoten-Slices hinweg summiert. Weitere Informationen über Knoten-Slices finden Sie unter Architektur des Data Warehouse-Systems.

Um die Ebene festzustellen, auf der die Zeile die Metriken meldet, prüfen Sie die Spalten segment und step_type.

  • Wenn segment und step_type den Wert -1 haben, meldet die Zeile die Metriken auf Abfrageebene.

  • Wenn segment nicht den Wert -1 und step_type den Wert -1 hat, meldet die Zeile die Metriken auf Segmentebene.

  • Wenn segment und step_type nicht den Wert -1 haben, meldet die Zeile die Metriken auf Schrittebene.

Die Ansicht SVL_QUERY_METRICS und die Ansicht SVL_QUERY_METRICS_SUMMARY aggregieren die Daten in dieser Ansicht und präsentieren die Informationen in zugänglicherer Form.

STL_ QUERY _ METRICS 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 befinden sich auch in der SYS ÜberwachungsansichtSYS_QUERY_DETAIL. Die Daten in der SYS Überwachungsansicht sind so formatiert, dass sie einfacher zu verwenden und zu verstehen sind. Wir empfehlen Ihnen, die SYS Überwachungsansicht für Ihre Abfragen zu verwenden.

Tabellenspalten

Spaltenname Datentyp Beschreibung
userid integer ID des Benutzers, der die Abfrage ausgeführt hat, die den Eintrag generierte.
service_class integer ID für die Service-Klasse. Abfragewarteschlangen sind in der WLM Konfiguration definiert. Nur für benutzerdefinierte Abfragen werden Metriken gemeldet.
query integer Abfrage-ID. Die Abfrage-Spalte kann verwendet werden, um andere Systemtabellen und Anzeigen anzufügen.
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. Wenn der Segmentwert -1 ist, werden Segment-Metrikwerte zur Abfrageebene aufgerollt.
step_type integer Typ des Schritts, der ausgeführt wurde. Eine detaillierte Beschreibung der Schritttypen finden Sie unter Schritttypen.
starttime Zeitstempel UhrzeitUTC, zu der die Abfrage gestartet wurde, mit einer Genauigkeit von 6 Ziffern für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358.
slices integer Anzahl der Slices für den Cluster.
max_rows bigint Höchstzahl der für einen Schritt ausgegebenen Zeilen, über alle Slices hinweg aggregiert.
rows bigint Anzahl der von einem Schritt verarbeiteten Zeilen.
max_cpu_time bigint Maximal verwendete CPU Zeit in Mikrosekunden. Auf Segmentebene die maximale CPU Zeit, die das Segment in allen Schichten verwendet. Auf Abfrageebene die maximale CPU Zeit, die von einem Abfragesegment verwendet wird.
cpu_time bigint CPUverwendete Zeit in Mikrosekunden. Auf Segmentebene die CPU Gesamtzeit für das Segment über alle Schichten hinweg. Auf Abfrageebene die Summe der CPU Zeit für die Abfrage in allen Segmenten und Segmenten.
max_blocks_read bigint Die Höchstzahl der von dem Segment gelesenen 1 MB-Blöcke, aggregiert über alle Slices. Auf Segmentebene die Höchstzahl der für das Segment gelesenen 1 MB-Blöcke, über alle Slices. Auf Abfrageebene die Höchstzahl der von einem Abfragesegment gelesenen 1 MB-Blöcke.
blocks_read bigint Anzahl der von der Abfrage oder dem Segment gelesenen 1 MB-Blöcke.
max_run_time bigint Die maximale verstrichene Zeit für ein Segment, in Mikrosekunden. Auf Segmentebene die maximale Laufzeit für das Segment, über alle Slices. Auf Abfrageebene die maximale Laufzeit für ein Abfragesegment.
run_time bigint

Die gesamte Laufzeit, summiert über alle Slices. Die Laufzeit enthält nicht die Wartezeit.

Auf Segmentebene die Laufzeit für das Segment, summiert über alle Slices. Auf Abfrageebene die Laufzeit für die Abfrage, summiert über alle Slices und Segmente. Da dieser Wert eine Summe ist, ist die Laufzeit nicht mit der Abfrageausführungszeit verbunden.

max_blocks_to_disk bigint Der maximale Festplattenspeicherplatz, der zum Schreiben von Zwischenergebnissen verwendet wird, in MB-Blöcken. Auf Segmentebene der maximale von dem Segment verwendete Festplattenspeicherplatz, über alle Slices. Auf Abfrageebene der maximale von einem Abfragesegment verwendete Festplattenspeicherplatz.
blocks_to_disk bigint Der Festplattenspeicherplatz, der von einer Abfrage oder einem Segment zum Schreiben von Zwischenergebnissen verwendet wird, in MB-Blöcken.
Schritt integer Abfrageschritt, der ausgeführt wurde.
max_query_scan_size bigint Die maximale von einer Abfrage gescannte Datenmenge, in MB. Auf Segmentebene die maximale von dem Segment gescannte Datenmenge, über alle Slices. Auf Abfrageebene die maximale von einem Abfragesegment gescannte Datenmenge.
query_scan_size bigint Die von einer Abfrage gescannte Datenmenge, in MB.
query_priority integer Die Priorität der Abfrage. Mögliche Werte sind -1, 0, 1, 2, 3 und 4, wobei -1 bedeutet, dass die Abfragepriorität nicht unterstützt wird.
query_queue_time bigint Die Zeitspanne in Mikrosekunden, über die hinweg sich die Abfrage in der Warteschlange befand.
service_class_name character(64) Der Name der Serviceklasse.

Beispielabfrage

Führen Sie die folgende Abfrage aus, um Abfragen mit hoher CPU Zeit (mehr als 1.000 Sekunden) zu finden.

Select query, cpu_time / 1000000 as cpu_seconds from stl_query_metrics where segment = -1 and cpu_time > 1000000000 order by cpu_time; query | cpu_seconds ------+------------ 25775 | 9540

Um aktive Abfragen mit einem Nested Loop-Join zu finden, die mehr als eine Million Zeilen ausgegeben haben, führen Sie die folgende Abfrage aus.

select query, rows from stl_query_metrics where step_type = 15 and rows > 1000000 order by rows; query | rows ------+----------- 25775 | 2621562702

Führen Sie die folgende Abfrage aus, um aktive Abfragen zu finden, die länger als 60 Sekunden ausgeführt wurden und weniger als 10 Sekunden beansprucht haben. CPU

select query, run_time/1000000 as run_time_seconds from stl_query_metrics where segment = -1 and run_time > 60000000 and cpu_time < 10000000; query | run_time_seconds ------+----------------- 25775 | 114