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
undstep_type
den Wert-1
haben, meldet die Zeile die Metriken auf Abfrageebene. -
Wenn
segment
nicht den Wert-1
undstep_type
den Wert-1
hat, meldet die Zeile die Metriken auf Segmentebene. -
Wenn
segment
undstep_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