本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SYS_QUERY_TEXT
使用 SYS_QUERY_TEXT 檢視所有查詢的查詢文字。每一列代表查詢的查詢文字,最多 4000 個字元,以序列號 0 開始。當查詢陳述式包含超過 4000 個字元時,會藉由遞增每個列的序號來記錄陳述式的其他列。此檢視會記錄所有使用者查詢文字,例如 DDL、公用程式、Amazon Redshift 查詢和僅限領導者節點的查詢。
SYS所有使用者都可看見 _QUERY_TEXT。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性。
資料表欄
欄名稱 | 資料類型 | 描述 |
---|---|---|
user_id | integer | 提交查詢之使用者的識別碼。 |
query_id | bigint | 查詢識別碼。 |
transaction_id | bigint | 與陳述式關聯的交易 ID。 |
session_id | integer | 執行查詢之工作階段的處理程序識別碼。 |
start_time | timestamp | 查詢開始的時間。 |
sequence | integer | 當單一陳述式包含不只 4000 個字元時,會將該陳述式的其他列記錄下來。序列 0 是第一列,1 是第二列,以此類推。 |
text | character (4000) | 以 4000 個字元增量的SQL查詢文字。此欄位可能包含特殊字元,例如反斜線 () 和換行符號 ()。 |
範例查詢
下列查詢會傳回執行中和佇列中的查詢。
SELECT user_id, query_id, transaction_id, session_id, start_time, sequence, trim(text) as text from sys_query_text ORDER BY sequence;
輸出範例。
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;
下列查詢會傳回已從資料庫中的群組授與或撤銷的許可。
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 | +-------------+----------+--------+----------+