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, etwa die Anzahl der verarbeiteten Zeilen, die CPU-Nutzung, Input/Output- und Festplattennutzung für aktive Abfragen, die in benutzerdefinierten Abfragewarteschlangen (Service-Klassen) abgeschlossen wurden. 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 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 die Abfrage ausgeführt hat, die den Eintrag generierte.
service_class integer ID für die Service-Klasse. Abfragewarteschlangen werden 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 timestamp Uhrzeit in UTC, zu der die Ausführung der Abfrage begonnen wurde, mit 6 Nachkommastellen für Sekundenbruchteile. Zum 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 Die maximale verwendete CPU-Zeit, in Mikrosekunden. Auf Segmentebene die maximale von dem Segment verwendete CPU-Zeit, über alle Slices. Auf Abfrageebene die maximale von einem Abfragesegment verwendete CPU-Zeit.
cpu_time bigint Die verwendete CPU-Zeit, in Mikrosekunden. Auf Segmentebene die gesamte von dem Segment verwendete CPU-Zeit, über alle Slices. Auf Abfrageebene die gesamte CPU-Zeit für die Abfrage, über alle Slices und Segmente.
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

Um Abfragen mit einer hohen CPU-Zeit (über 1.000 Sekunden) zu finden, führen Sie die folgende Abfrage aus.

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

Um aktive Abfragen zu finden, die länger als 60 Sekunden liefen und weniger als 10 Sekunden CPU-Zeit genutzt haben, führen Sie die folgende Abfrage aus.

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