STL_SCAN - 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_SCAN

Analysiert Tabellen-Scan-Schritte für Abfragen. Die Schrittnummer für Zeilen in dieser Tabelle ist immer 0, da ein Scan der erste Schritt in einem Segment ist.

STL_ SCAN 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.

Anmerkung

STL_ enthält SCAN nur Abfragen, die auf Hauptclustern ausgeführt werden. Abfragen, die auf Nebenläufigkeitsskalierungs-Clustern ausgeführt werden, sind nicht enthalten. Für den Zugriff auf Abfragen, die sowohl auf Haupt- als auch auf Clustern zur Parallelitätsskalierung ausgeführt werden, empfehlen wir, die SYS Überwachungsansicht SYS_QUERY_DETAIL zu verwenden. Die Daten in der SYS Überwachungsansicht sind so formatiert, dass sie einfacher zu verwenden und zu verstehen sind.

Tabellenspalten

Spaltenname Datentyp Beschreibung
userid integer ID des Benutzers, der den Eintrag generiert hat.
query integer Abfrage-ID. Die Abfrage-Spalte kann verwendet werden, um andere Systemtabellen und Anzeigen anzufügen.
slice integer Die Nummer, die das Slice angibt, in dem die Abfrage ausgeführt wurde.
segment integer Zahl, mit der das Abfrage-Segment identifiziert wird.
Schritt integer Abfrageschritt, der ausgeführt wurde.
starttime Zeitstempel UhrzeitUTC, zu der die Abfrage gestartet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358.
endtime Zeitstempel ZeitUTC, in der die Abfrage beendet wurde. Die Gesamtzeit umfasst die Zeit in der Warteschlange und Zeit für die Ausführung mit einer Genauigkeit von 6 Nachkommastellen für Sekundenbruchteile. Beispiel: 2009-06-12 11:29:19.131358.
tasknum Ganzzahl Nummer des Abfrageaufgabenprozesses, der der Ausführung des Schritts zugeordnet wurde.
rows bigint Gesamtzahl der Zeilen, die verarbeitet wurden.
bytes bigint Größe, in Bytes, aller Ausgabezeilen für den Schritt.
fetches bigint Diese Information ist nur für die interne Verwendung gedacht.
type integer ID des Scan-Typs. Eine Liste der Werte finden Sie in der folgenden Tabelle.
tbl integer Tabellen-ID.
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) Diese Information ist nur für die interne Verwendung gedacht.
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.
rows_pre_user_filter bigint Bei Scans permanenter Tabellen die Anzahl der Zeilen, die nach der Filterung der zur Löschung markierten Zeilen verarbeitet wurden (Geisterzeilen), jedoch vor der Anwendung benutzerdefinierter Abfragefilter.
perm_table_name character(136) Bei Scans permanenter Tabellen der Name der gescannten Tabelle.
is_rlf_scan character(1) „True“ (t) zeigt an, dass für diesen Schritt eine Filterung auf Zeilenebene durchgeführt wurde.
is_rlf_scan_reason integer Diese Information ist nur für die interne Verwendung gedacht.
num_em_blocks integer Diese Information ist nur für die interne Verwendung gedacht.
Prüfsumme bigint Diese Information ist nur für die interne Verwendung gedacht.
runtime_filtering character(1) Gibt bei true (t) an, dass Laufzeitfilter angewendet werden.
scan_region Ganzzahl Diese Information ist nur für die interne Verwendung gedacht.
num_sortkey_as_predicate Ganzzahl Diese Information ist nur für die interne Verwendung gedacht.
row_fetcher_state Ganzzahl Diese Information ist nur für die interne Verwendung gedacht.
consumed_scan_ranges bigint Diese Information ist nur für die interne Verwendung gedacht.
work_stealing_reason bigint Diese Information ist nur für die interne Verwendung gedacht.
is_vectorized_scan character(1) Diese Information ist nur für die interne Verwendung gedacht.
is_vectorized_scan_reason Ganzzahl Diese Information ist nur für die interne Verwendung gedacht.
row_fetcher_reason bigint Diese Information ist nur für die interne Verwendung gedacht.
topology_signature bigint Diese Information ist nur für die interne Verwendung gedacht.
use_tpm_partition character(1) Diese Information ist nur für die interne Verwendung gedacht.
is_rrscan_expr character(1) Diese Information ist nur für die interne Verwendung gedacht.
scanned_mega_value character(1) Diese Information ist nur für die interne Verwendung gedacht. Diese Information zeigt an, ob der bestimmte Scanschritt einen großen Wert gescannt hat. Ein großer Wert wird in mehreren Blöcken gespeichert. Die Blockgröße beträgt standardmäßig 1 MB, ein großer Wert ist in einer Standardeinstellung größer als 1 MB.

Scan-Typen

Typ-ID Beschreibung
1 Daten aus dem Netzwerk.
2 Permanente Benutzertabellen in komprimiertem gemeinsam genutztem Speicher.
3 Temporäre zeilenweise Tabellen.
21 Laden Sie Dateien von Amazon S3.
22 Laden Sie Tabellen aus Amazon DynamoDB
23 Lädt Daten von einer SSH Remoteverbindung.
24 Daten von einem Remote-Cluster (sortierte Region) laden. Dies wird zur Größenanpassung verwendet.
25 Daten von einem Remote-Cluster (nicht sortierte Region) laden. Dies wird zur Größenanpassung verwendet.
28 Lesen Sie Daten aus einer Zeitreihenansicht mit UNION ALL mehreren Tabellen.
29 Lesen von Daten aus externen Amazon-S3-Tabellen
30 Lesen der Partitionsinformationen einer externen Amazon-S3-Tabelle
33 Lesen von Daten aus einer Remote-Postgres-Tabelle
36 Daten aus einer entfernten SQL My-Tabelle lesen.
37 Lesen von Daten aus einem Remote-Kinesis-Stream

Nutzungshinweise

Idealerweise sollte rows relativ nahe bei rows_pre_filter liegen. Eine große Differenz zwischen rows und rows_pre_filter zeigt an, dass die Ausführungsengine Zeilen scannt, die später verworfen werden, was nicht effizient ist. Die Differenz zwischen rows_pre_filter und rows_pre_user_filter ist die Anzahl von Geisterzeilen in dem Scan. Führen Sie a ausVACUUM, um Zeilen zu entfernen, die zum Löschen markiert sind. Die Differenz zwischen rows und rows_pre_user_filter ist die Anzahl der Zeilen, die von der Abfrage gefiltert wurden. Wenn sehr viele Zeilen von dem Benutzerfilter verworfen werden, prüfen Sie Ihre Auswahl der Sortierspalte oder, wenn eine große nicht sortierte Region dafür verantwortlich ist, führen Sie eine Bereinigung durch.

Beispielabfragen

Das folgende Beispiel zeigt, dass rows_pre_filter größer als rows_pre_user_filter ist, da die Tabelle gelöschte Zeilen enthält, die noch nicht bereinigt wurden (Geisterzeilen).

SELECT query, slice, segment,step,rows, rows_pre_filter, rows_pre_user_filter from stl_scan where query = pg_last_query_id(); query | slice | segment | step | rows | rows_pre_filter | rows_pre_user_filter -------+--------+---------+------+-------+-----------------+---------------------- 42915 | 0 | 0 | 0 | 43159 | 86318 | 43159 42915 | 0 | 1 | 0 | 1 | 0 | 0 42915 | 1 | 0 | 0 | 43091 | 86182 | 43091 42915 | 1 | 1 | 0 | 1 | 0 | 0 42915 | 2 | 0 | 0 | 42778 | 85556 | 42778 42915 | 2 | 1 | 0 | 1 | 0 | 0 42915 | 3 | 0 | 0 | 43428 | 86856 | 43428 42915 | 3 | 1 | 0 | 1 | 0 | 0 42915 | 10000 | 2 | 0 | 4 | 0 | 0 (9 rows)