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)