SYS_QUERY_TEXT - 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.

SYS_QUERY_TEXT

Verwenden Sie SYS_QUERY_TEXT, um den Abfragetext aller Abfragen anzuzeigen. Jede Zeile stellt den Abfragetext von Abfragen mit bis zu 4 000 Zeichen dar, beginnend mit der Sequenznummer 0. Wenn die Abfrageanweisung mehr als 4 000 Zeichen enthält, werden zusätzliche Zeilen für die Anweisung protokolliert, indem die Sequenznummer für jede Zeile erhöht wird. In dieser Ansicht werden alle Benutzerabfragetexte protokolliert, z. B. DDL-, Utility-, Amazon-Redshift-Abfragen und reine Führungsknotenabfragen.

SYS_QUERY_TEXT 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.
transaction_id bigint Die ID der mit der Anweisung verbundenen Transaktion.
session_id Ganzzahl Die Prozess-ID der Sitzung, die die Abfrage ausführt.
start_time Zeitstempel Der Zeitpunkt, an dem die Abfrage gestartet wird.
sequence Ganzzahl Wenn eine einzelne Anweisung mehr als 4 000 Zeichen enthält, werden weitere Zeilen für diese Anweisung protokolliert. Sequenz 0 ist die erste Zeile, 1 die zweite Zeile usw.
text Zeichen (4000) Der Text der SQL-Abfrage, der in Schritten von 4 000 Zeichen angegeben ist. Diese Feld kann Sonderzeichen wie Backslash (\) und Zeilenumbruch (\n) enthalten.

Beispielabfragen

Die folgende Abfrage gibt laufende und in der Warteschlange stehende Abfragen zurück.

SELECT user_id, query_id, transaction_id, session_id, start_time, sequence, trim(text) as text from sys_query_text ORDER BY sequence;

Beispielausgabe.

user_id | query_id | transaction_id | session_id | start_time | sequence | text --------+----------+-----------------+------------+----------------------------+----------+---------------------------------------------------------------------------------------------------------------------- 100 | 4 | 1396 | 1073750220 | 2023-04-28 16:44:55.887184 | 0 | SELECT trim(text) as text, sequence FROM sys_query_text WHERE query_id = pg_last_query_id() AND user_id > 1 AND start _time > '2023-04-28 16:44:55.922705+00:00'::timestamp order by sequence;

Die folgende Abfrage gibt die Berechtigungen zurück, die Gruppen in Ihrer Datenbank erteilt oder entzogen wurden.

SELECT SPLIT_PART(text, ' ', 1) as grantrevoke, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'GROUP'))), ' ', 2) as group, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), ' '))), 'ON', 1) as type, SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 2) || ' ' || SPLIT_PART((SUBSTRING(text, STRPOS(UPPER(text), 'ON'))), ' ', 3) as entity FROM SYS_QUERY_TEXT WHERE (text LIKE 'GRANT%' OR text LIKE 'REVOKE%') AND text LIKE '%GROUP%'; +-------------+----------+--------+----------+ | grantrevoke | group | type | entity | +-------------+----------+--------+----------+ | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | USAGE | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | | GRANT | bi_group | SELECT | TABLE t1 | +-------------+----------+--------+----------+