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.
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_SCAN enthält nur Abfragen, die auf den bereitgestellten Hauptclustern ausgeführt werden. Es enthält keine Abfragen, die auf Clustern zur Parallelitätsskalierung oder auf serverlosen Namespaces ausgeführt werden. Für den Zugriff auf Erläuterungspläne für Abfragen, die sowohl auf Hauptclustern, Clustern zur Parallelitätsskalierung als auch auf serverlosen Namespaces ausgeführt werden, empfehlen wir die Verwendung der SYS-Überwachungsansicht. SYS_QUERY_DETAIL Die Daten in der SYS-Überwachungsansicht sind so formatiert, dass sie leichter verwendbar und besser verständlich 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 | Zeitpunkt des Beginns der Abfrage, nach UTC. 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 | Zeitpunkt in UTC, an dem die Abfrage abgeschlossen 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 | Daten von einer Remote-SSH-Verbindung laden. |
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 von Daten aus einer Zeitreihenansicht mit UNION ALL auf 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 | Lesen von Daten aus einer Remote-MySQL-Tabelle |
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 einen VACUUM-Vorgang durch, um die zum Löschen markierten Zeilen zu entfernen. 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)