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 protokolliertDDL, z. B. Utility-Abfragen, Amazon Redshift Redshift-Abfragen und reine Leader-Node-Abfragen.
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 4000 Zeichen angegeben wird. 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 | +-------------+----------+--------+----------+