SYS_QUERY_TEXT - Amazon Redshift

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 | +-------------+----------+--------+----------+