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.
SVL_QUERY_SUMMARY
Verwenden Sie die Ansicht SVL_QUERY_SUMMARY, um allgemeine Informationen zur Ausführung einer Abfrage zu erhalten.
Die Ansicht SVL_QUERY_SUMMARY enthält einen Teil der Daten der Ansicht SVL_QUERY_REPORT. Beachten Sie, dass die Informationen in SVL_QUERY_SUMMARY von allen Knoten aggregiert sind.
Anmerkung
Die Ansicht SVL_QUERY_SUMMARY enthält nur Informationen zu von Amazon Redshift ausgeführten Abfragen, nicht zu anderen Utility- und DDL-Befehlen. Für eine vollständige Liste und Informationen zu allen von Amazon Redshift ausgeführten Anweisungen, einschließlich DDL- und Utility-Befehlen, können Sie die Ansicht SVL_STATEMENTTEXT abfragen.
SVL_QUERY_SUMMARY 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 sind auch in der SYS-Überwachungsansicht SYS_QUERY_DETAIL zu finden. Die Daten in der SYS-Überwachungsansicht sind so formatiert, dass sie leichter verwendbar und besser verständlich sind. Wir empfehlen Ihnen, für Ihre Abfragen die SYS-Überwachungsansicht zu verwenden.
Informationen zu SVCS_QUERY_SUMMARY finden Sie unter SVCS_QUERY_SUMMARY.
Tabellenspalten
Spaltenname | Datentyp | Beschreibung |
---|---|---|
userid | integer | ID des Benutzers, der den Eintrag generiert hat. |
query | integer | Abfrage-ID. Kann verwendet werden, um verschiedene andere Systemtabellen und Anzeigen anzufügen. |
stm | integer | Stream: Ein Satz gleichzeitiger Segmente einer Abfrage. Eine Abfrage enthält einen oder mehrere Streams. |
seg | 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. |
Schritt | integer | Abfrageschritt, der ausgeführt wurde. |
maxtime | bigint | Maximale Zeit für die Ausführung des Schritts (in Mikrosekunden). |
avgtime | bigint | Durchschnittliche Zeit für die Ausführung des Schritts (in Mikrosekunden). |
rows | bigint | Anzahl der an dem Abfrageschritt beteiligten Datenzeilen. |
bytes | bigint | Anzahl der an dem Abfrageschritt beteiligten Bytes. |
rate_row | double precision | Ausführungsrate der Abfrage pro Zeile. |
rate_byte | double precision | Ausführungsrate der Abfrage pro Byte. |
label | Text | Schritt-Etikett, bestehend aus dem Namen eines Abfrageschritts und, falls anwendbar, der Tabellen-ID und dem Tabellennamen (zum Beispiel scan tbl = 100448). Dreistellige Tabellen-IDs beziehen sich normalerweise auf Scans temporärer Tabellen. Wenn Sie tbl=0 sehen, bezieht sich dies auf einen Scan eines konstanten Werts. |
is_diskbased | character(1) | Ob dieser Schritt der Abfrage als datenträgerbasierte Operation auf einem Knoten im Cluster ausgeführt wurde: true (t ) oder false (f ). Nur bestimmte Schritte, wie etwa Hash-, Sortierungs- oder Aggregierungsschritte, können auf die Festplatte übertragen werden. Viele Arten von Schritten werden immer im Arbeitsspeicher ausgeführt. |
workmem | bigint | Größe des Arbeitsspeichers (in Byte), der dem Abfrageschritt zugewiesen wurde. |
is_rrscan | character(1) | „true“ (t ) zeigt an, dass für diesen Schritt ein Scan mit Bereichseinschränkung durchgeführt wurde. Der Standardwert ist „false“ (f ). |
is_delayed_scan | character(1) | „true“ (t ) zeigt an, dass für diesen Schritt ein verzögerter Scan durchgeführt wurde. Der Standardwert ist „false“ (f ). |
rows_pre_filter | bigint | Für Scans permanenter Tabellen die Gesamtzahl der Zeilen, die vor der Filterung der zur Löschung markierten Zeilen (Geisterzeilen) ausgegeben wurden. |
Beispielabfragen
Anzeige von Verarbeitungsinformationen für einen Abfrageschritt
Die folgende Abfrage zeigt allgemeine Verarbeitungsinformationen für jeden Schritt von Abfrage 87:
select query, stm, seg, step, rows, bytes from svl_query_summary where query = 87 order by query, seg, step;
Diese Abfrage ruft die Verarbeitungsinformationen zu Abfrage 87 aus, wie die folgende Beispielausgabe zeigt:
query | stm | seg | step | rows | bytes -------+-----+-----+------+--------+--------- 87 | 0 | 0 | 0 | 90 | 1890 87 | 0 | 0 | 2 | 90 | 360 87 | 0 | 1 | 0 | 90 | 360 87 | 0 | 1 | 2 | 90 | 1440 87 | 1 | 2 | 0 | 210494 | 4209880 87 | 1 | 2 | 3 | 89500 | 0 87 | 1 | 2 | 6 | 4 | 96 87 | 2 | 3 | 0 | 4 | 96 87 | 2 | 3 | 1 | 4 | 96 87 | 2 | 4 | 0 | 4 | 96 87 | 2 | 4 | 1 | 1 | 24 87 | 3 | 5 | 0 | 1 | 24 87 | 3 | 5 | 4 | 0 | 0 (13 rows)
Ermittlung, ob Abfrageschritte auf den Datenträger übertragen wurden
Die folgende Abfrage zeigt, ob einer oder mehrere der Schritte für die Abfrage mit Abfrage-ID 1025 (vgl. die Ansicht SVL_QLOG zum Abruf der Abfrage-ID für eine Abfrage) auf die Festplatte übertragen wurde, oder ob die Abfrage vollständig im Speicher ausgeführt wurde:
select query, step, rows, workmem, label, is_diskbased from svl_query_summary where query = 1025 order by workmem desc;
Diese Abfrage gibt die folgende Beispielausgabe zurück:
query| step| rows | workmem | label | is_diskbased -----+-----+--------+-----------+---------------+-------------- 1025 | 0 |16000000| 141557760 |scan tbl=9 | f 1025 | 2 |16000000| 135266304 |hash tbl=142 | t 1025 | 0 |16000000| 128974848 |scan tbl=116536| f 1025 | 2 |16000000| 122683392 |dist | f (4 rows)
Durch das Scannen der Werte für IS_DISKBASED sehen Sie, welche Abfrageschritte auf die Festplatte übertragen wurden. Bei Abfrage 1025 wurde der Hash-Schritt auf der Festplatte ausgeführt. Schritte, die auf der Festplatte ausgeführt werden können, sind u. a. Hash-, Aggregierungs- und Sortierungsschritte. Um ausschließlich datenträgerbasierte Abfrageschritte anzuzeigen, fügen Sie der SQL-Anweisung im Beispiel oben die Klausel and
is_diskbased = 't'
hinzu.