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.
Verwenden Sie SYS_QUERY_DETAIL, um Details für Abfragen auf verschiedenen Metrikebenen anzuzeigen, wobei jede Zeile Details zu einer bestimmten WLM-Abfrage auf einer bestimmten Metrikebene darstellt. Diese Ansicht enthält viele Arten von Abfragen wie DDL-, DML- und Dienstprogrammbefehle (z. B. copy und unload). Einige Spalten sind je nach Abfragetyp möglicherweise nicht relevant. Beispielsweise ist external_scanned_bytes für interne Tabellen nicht relevant.
SYS_QUERY_DETAIL 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 |
---|---|---|
user_id | integer | Die ID des Benutzers, der die Abfrage gesendet hat. |
query_id | bigint | Die Abfrage-ID. |
child_query_sequence | Ganzzahl | Die Reihenfolge der neu geschriebenen Benutzerabfrage, beginnend mit 1. |
stream_id | Ganzzahl | Die Stream-Kennung des Abfrage-Streams. |
segment_id | Ganzzahl | Die Segmentkennung des Abfrageausführungssegments. |
step_id | integer | Die Schritt-ID in einem Segment. |
step_name | text | Der Schrittname in einem Segment. Mögliche Werte sindaggregate ,,broadcast ,delete ,distribute ,hash ,hashjoin ,insert ,limit ,merge ,nestloop ,,parse , return save scan , sort und. sortlimit unique window |
table_id | integer | Die Tabellen-ID für permanente Tabellenscans. |
table_name | character(136) | Der Tabellenname des Schritts, der ausgeführt wird. |
is_rrscan | character | Ein Wert, der angibt, ob ein Schritt ein Scanschritt ist. „True“ (t) zeigt an, dass für diesen Schritt ein Scan mit Bereichseinschränkung durchgeführt wurde. |
start_time | Zeitstempel | Der Zeitpunkt, zu dem der Abfrageschritt begann. Dieses Feld wird unabhängig vom Wert in der metrics_level Spalte auf Segmentebene aufgezeichnet. |
end_time | Zeitstempel | Der Zeitpunkt, an dem der Abfrageschritt abgeschlossen wurde. Dieses Feld wird unabhängig vom Wert in der metrics_level Spalte auf Segmentebene aufgezeichnet. |
duration | bigint | Die Zeit (Mikrosekunden), die für den Schritt aufgewendet wurde. Dieses Feld wird unabhängig vom Wert in der metrics_level Spalte auf Segmentebene aufgezeichnet. |
Warnung | text | Die Beschreibung des Warnungsereignisses. |
input_bytes | bigint | Die Eingabebytes für den aktuellen Schritt. |
input_rows | bigint | Die Eingabezeilen für den aktuellen Schritt. |
output_bytes | bigint | Die Ausgabebytes für den aktuellen Schritt. |
output_rows | bigint | Die Ausgabezeilen für den aktuellen Schritt. |
blocks_read | bigint | Die Anzahl der Blocks, die der Schritt gelesen hat. |
blocks_write | bigint | Die Anzahl der Blocks, die der Schritt geschrieben hat. |
local_read_IO | bigint | Die Anzahl der Blöcke, die aus dem lokalen Festplattencache gelesen wurden. |
remote_read_IO | bigint | Die Anzahl der remote gelesenen Blöcke. |
Quelle | text | Der Typ des Datenbankobjekts, das gescannt wurde. Diese Spalte hat nur dann einen Wert, wenn die Zeile Schrittname den Wert scan hat. |
data_skewness | Ganzzahl | Die Schiefe der Verteilung der Ausgabezeilen auf alle Schritte. Eine Zahl im Bereich von 0 bis 100 %. Je größer die Zahl ist, desto unausgewogener ist die Verteilung. |
time_skewness | Ganzzahl | Die Schiefe der Verteilung der Ausführungszeiten auf alle Schritte. Eine Zahl im Bereich von 0 bis 100 %. Je größer die Zahl ist, desto unausgewogener ist die Verteilung. |
is_active | character | Der Status der Abfrage auf Schrittebene. Mögliche Werte sind „t“, was darauf hinweist, dass der Schritt aktiv ausgeführt wird, oder „f“, was darauf hinweist, dass der Schritt abgeschlossen ist. |
spilled_block_local_disk | bigint | Die Anzahl der Blöcke, die auf die lokale Festplatte übertragen wurden. |
spilled_block_remote_disk | bigint | Die Anzahl der Blöcke, die an Amazon Simple Storage Service weitergegeben wurden. |
step_attribute | character(64) | Enthält Informationen zum zugehörigen Schritt. Mögliche Werte für Scan-Schritte: multi-dimensional . |
metrics_level | character(64) | Die metrische Ebene der Abfrage. Die möglichen Werte lauten wie folgt:
|
plan_parent_id | Ganzzahl | Die Kennung des übergeordneten Knotens des Planknotens. Ein übergeordneter Knoten kann mehrere untergeordnete Knoten haben. Ein Merge-Join ist beispielsweise der übergeordnete Knoten der Scans der verknüpften Tabellen. |
plan_node_id | Ganzzahl | Der Bezeichner eines Planknotens, der einem oder mehreren Schritten in der Abfrage zugeordnet ist. |
Nutzungshinweise
SYS_QUERY_DETAIL kann Metriken auf Schritt-, Steam-, Segment- und untergeordneter Abfrageebene enthalten. Zusätzlich zur Referenzierung der metrics_level-Spalte können Sie anhand der Referenzierung auf die Felder step_id, segment_id und stream_id gemäß der folgenden Tabelle sehen, welche Metrikebene in einer bestimmten Zeile angezeigt wird.
Metrikebene | stream_id-Wert | Wert für segment_id | Wert von step_id |
---|---|---|---|
Anfrage für ein Kind | -1 | -1 | -1 |
stream | Ein gültiger Schrittwert | -1 | -1 |
segment | Ein gültiger Schrittwert | Ein gültiger Schrittwert | -1 |
Schritt | Ein gültiger Schrittwert | Ein gültiger Schrittwert | Ein gültiger Schrittwert |
Beispielabfragen
Das folgende Beispiel gibt die Ausgabe von SYS_QUERY_DETAIL zurück.
Die folgende Abfrage zeigt die Abfragemetadatendetails auf Schrittebene, einschließlich Schrittname, input_bytes, output_bytes, input_rows, output_rows.
SELECT query_id,
child_query_sequence,
stream_id,
segment_id,
step_id,
trim(step_name) AS step_name,
duration,
input_bytes,
output_bytes,
input_rows,
output_rows
FROM sys_query_detail
WHERE query_id IN (193929)
ORDER BY query_id,
stream_id,
segment_id,
step_id DESC;
Beispielausgabe.
query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | duration | input_bytes | output_bytes | input_rows | output_rows
----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+-------------
193929 | 2 | 0 | 0 | 3 | hash | 37144 | 0 | 9350272 | 0 | 292196
193929 | 5 | 0 | 0 | 3 | hash | 9492 | 0 | 23360 | 0 | 1460
193929 | 1 | 0 | 0 | 3 | hash | 46809 | 0 | 9350272 | 0 | 292196
193929 | 4 | 0 | 0 | 2 | return | 7685 | 0 | 896 | 0 | 112
193929 | 1 | 0 | 0 | 2 | project | 46809 | 0 | 0 | 0 | 292196
193929 | 2 | 0 | 0 | 2 | project | 37144 | 0 | 0 | 0 | 292196
193929 | 5 | 0 | 0 | 2 | project | 9492 | 0 | 0 | 0 | 1460
193929 | 3 | 0 | 0 | 2 | return | 11033 | 0 | 14336 | 0 | 112
193929 | 2 | 0 | 0 | 1 | project | 37144 | 0 | 0 | 0 | 292196
193929 | 1 | 0 | 0 | 1 | project | 46809 | 0 | 0 | 0 | 292196
193929 | 5 | 0 | 0 | 1 | project | 9492 | 0 | 0 | 0 | 1460
193929 | 3 | 0 | 0 | 1 | aggregate | 11033 | 0 | 201488 | 0 | 14
193929 | 4 | 0 | 0 | 1 | aggregate | 7685 | 0 | 28784 | 0 | 14
193929 | 5 | 0 | 0 | 0 | scan | 9492 | 0 | 23360 | 292196 | 1460
193929 | 4 | 0 | 0 | 0 | scan | 7685 | 0 | 1344 | 112 | 112
193929 | 2 | 0 | 0 | 0 | scan | 37144 | 0 | 7304900 | 292196 | 292196
193929 | 3 | 0 | 0 | 0 | scan | 11033 | 0 | 13440 | 112 | 112
193929 | 1 | 0 | 0 | 0 | scan | 46809 | 0 | 7304900 | 292196 | 292196
193929 | 5 | 0 | 0 | -1 | | 9492 | 12288 | 0 | 0 | 0
193929 | 1 | 0 | 0 | -1 | | 46809 | 16384 | 0 | 0 | 0
193929 | 2 | 0 | 0 | -1 | | 37144 | 16384 | 0 | 0 | 0
193929 | 4 | 0 | 0 | -1 | | 7685 | 28672 | 0 | 0 | 0
193929 | 3 | 0 | 0 | -1 | | 11033 | 114688 | 0 | 0 | 0
Verwenden Sie das folgende Beispiel, um die Tabellen in Ihrer Datenbank in der Reihenfolge von den am häufigsten verwendeten zu den am wenigsten verwendeten Tabellen anzuzeigen. sample_data_dev
Ersetzen Sie es durch Ihre eigene Datenbank. Beachten Sie, dass bei dieser Abfrage ab dem Zeitpunkt Abfragen gezählt werden, an dem Ihr Cluster erstellt wird. Ihre Systemansichtsdaten werden jedoch nicht gespeichert, wenn in Ihrem Data Warehouse nicht genügend Speicherplatz vorhanden ist.
SELECT table_name, COUNT (DISTINCT query_id)
FROM SYS_QUERY_DETAIL
WHERE table_name LIKE 'sample_data_dev%'
GROUP BY table_name
ORDER BY COUNT(*) DESC;
+---------------------------------+-------+
| table_name | count |
+---------------------------------+-------+
| sample_data_dev.tickit.venue | 4 |
| sample_data_dev.myunload1.venue | 3 |
| sample_data_dev.tickit.listing | 1 |
| sample_data_dev.tickit.category | 1 |
| sample_data_dev.tickit.users | 1 |
| sample_data_dev.tickit.date | 1 |
| sample_data_dev.tickit.sales | 1 |
| sample_data_dev.tickit.event | 1 |
+---------------------------------+-------+
Das folgende Beispiel zeigt die verschiedenen Metrikebenen für eine einzelne WLM-Abfrage.
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, step_name, start_time, end_time, metrics_level
FROM sys_query_detail
WHERE query_id = 1553 AND step_id = -1
ORDER BY stream_id, segment_id, step_id;
query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | start_time | end_time | metrics_level
----------+----------------------+-----------+------------+---------+-----------+----------------------------+----------------------------+---------------
1553 | 1 | -1 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.847838 | child query
1553 | 1 | 0 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.835609 | stream
1553 | 1 | 0 | 0 | -1 | | 2024-10-17 02:28:49.824677 | 2024-10-17 02:28:49.830372 | segment
1553 | 1 | 1 | -1 | -1 | | 2024-10-17 02:28:49.835624 | 2024-10-17 02:28:49.845773 | stream
1553 | 1 | 1 | 1 | -1 | | 2024-10-17 02:28:49.84088 | 2024-10-17 02:28:49.842388 | segment
1553 | 1 | 1 | 2 | -1 | | 2024-10-17 02:28:49.835926 | 2024-10-17 02:28:49.844396 | segment
1553 | 1 | 2 | -1 | -1 | | 2024-10-17 02:28:49.846949 | 2024-10-17 02:28:49.847838 | stream
1553 | 1 | 2 | 3 | -1 | | 2024-10-17 02:28:49.847013 | 2024-10-17 02:28:49.847485 | segment
(8 rows)