SYS_QUERY_TEXT
使用 SYS_QUERY_TEXT 查看所有查询的查询文本。每行代表最多 4000 个字符的查询的查询文本(从序列号 0 开始)。当查询语句包含超过 4000 个字符时,通过增加每行的序列号来为该语句记录额外的行。此视图记录所有用户查询文本,例如 DDL、实用程序、Amazon Redshift 查询和仅限领导节点的查询。
SYS_QUERY_TEXT 对所有用户均可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅 系统表和视图中的数据可见性。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
user_id | integer | 提交查询的用户标识符。 |
query_id | bigint | 查询标识符。 |
transaction_id | bigint | 与此语句关联的事务的标识符。 |
session_id | 整数 | 运行查询的会话的进程标识符。 |
start_time | 时间戳 | 查询开始的时间。 |
sequence | 整数 | 当单个语句包含超过 4000 个字符时,将为该语句记录额外的行。序列 0 是第一行,1 是第二行,依此类推。 |
文本 | character (4000) | 以 4000 个字符为增量的 SQL 查询文本。此字段可能包含反斜杠 (\) 和换行符 (\n) 等特殊字符。 |
示例查询
以下查询返回了正在运行的查询和已排队的查询。
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 | +-------------+----------+--------+----------+