SYS_QUERY_TEXT - Amazon Redshift

SYS_QUERY_TEXT

Utilice SYS_QUERY_TEXT para ver el texto de todas las consultas. Cada fila representa el texto de las consultas de hasta 4000 caracteres que comienzan por el número de secuencia 0. Cuando la instrucción de consulta contiene más de 4000 caracteres, se registran filas adicionales para la instrucción al incrementar el número de secuencia de cada fila. Esta vista registra todo el texto de las consultas de los usuarios como las consultas de DDL, de utilidades, de Amazon Redshift y únicas del nodo principal.

SYS_QUERY_TEXT es visible para todos los usuarios. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Columnas de la tabla

Nombre de la columna Tipo de datos Descripción
user_id integer El identificador del usuario que envió la consulta.
query_id bigint Identificador de la consulta.
transaction_id bigint El identificador de la transacción asociado a la instrucción.
session_id integer El identificador del proceso de la sesión que ejecuta la consulta.
start_time Marca de tiempo La hora cuando empieza la consulta.
sequence integer Cuando una única instrucción tiene más de 4000 caracteres, se registran filas adicionales para la instrucción. Secuencia 0 es la primera fila, 1 es la segunda fila y, así, sucesivamente.
texto carácter (4000) El texto de la consulta SQL que está en incrementos de 4000 caracteres. Este campo puede contener caracteres especiales, como una barra oblicua inversa (\) y una nueva línea (\n).

Consultas de ejemplo

La siguiente consulta devuelve consultas en ejecución y en cola.

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

Resultados de ejemplo.

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;

La siguiente consulta devuelve los permisos concedidos o revocados a los grupos de la base de datos.

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