SYS_QUERY_TEXT - Amazon Redshift

SYS_QUERY_TEXT

Use SYS_QUERY_TEXT para visualizar os textos de todas as consultas. Cada linha representa o texto de consultas com até 4.000 caracteres que começam com o número de sequência 0. Quando a instrução de consulta contém mais de 4.000 caracteres, linhas adicionais são registradas em log para a instrução por meio da incrementação do número de sequência de cada linha. Essa visualização registra em log todos os textos de consultas do usuário, como DDL, utilitário, consultas do Amazon Redshift e consultas somente do nó líder.

SYS_QUERY_TEXT é visível a todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para obter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.

Colunas da tabela

Nome da coluna Tipo de dados Descrição
user_id inteiro O identificador do usuário que enviou a consulta.
query_id bigint O identificador da consulta.
transaction_id bigint O identificador da transação associada à instrução.
session_id inteiro O identificador do processo da sessão que executa a consulta.
start_time timestamp A hora de início da consulta.
sequence inteiro Quando uma única instrução contém mais de 4.000 caracteres, são registradas linhas adicionais para a instrução. O valor 0 da sequência é a primeira linha, 1 é a segunda linha e assim por diante.
text character (4000) O texto da consulta SQL que está em incrementos de 4.000 caracteres. Esse campo pode conter caracteres especiais, como barra invertida (\) e nova linha (\n).

Consultas de exemplo

A consulta a seguir retorna consultas em execução e enfileiradas.

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

Exemplo de resultado.

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;

A consulta a seguir retorna as permissões que foram concedidas ou revogadas dos grupos no banco de dados.

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