SYS_PROCEDURE_CALL - Amazon Redshift

SYS_PROCEDURE_CALL

Use a visão SYS_PROCEDURE_CALL para obter informações sobre as chamadas de procedimento armazenado, inclusive a hora de início, a hora de término, o status de uma chamada de procedimento armazenado e a hierarquia de chamadas de procedimento armazenado aninhado. Cada chamada de procedimento armazenado recebe um ID de consulta.

SYS_PROCEDURE_CALL está visível para 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
session_user_id inteiro O identificador do usuário que criou a sessão e é o invocador da chamada de procedimento armazenado de nível superior.
security_user_id inteiro O identificador do usuário cujos privilégios foram usados para executar a instrução dentro do procedimento armazenado. Se o procedimento armazenado for DEFINER, esse será o user_id proprietário do procedimento armazenado.
query_id inteiro O identificador da consulta da chamada do procedimento armazenado.
query_text char(4.000) O texto da consulta de chamada de procedimento.
start_time timestamp A hora de início (em UTC) da execução da consulta. O timestamp usa seis dígitos de precisão para segundos fracionários, por exemplo: 2009-06-12 11:29:19.131358.
end_time timestamp A hora de término (em UTC) da execução da consulta. O timestamp usa seis dígitos de precisão para segundos fracionários, por exemplo: 2009-06-12 11:29:19.131358.
status char(10) O status da chamada do procedimento armazenado. Quando o procedimento armazenado foi interrompido pelo sistema ou cancelado pelo usuário, o valor foi cancelado. Se procedimento armazenado for concluído, o valor será sucesso.
caller_procedure_query_id inteiro Se o procedimento armazenado tiver sido invocado por outro procedimento armazenado, essa coluna terá o ID de consulta da chamada externa. Caso contrário, o campo será NULL.

Consultas de exemplo

A consulta a seguir retorna uma hierarquia de chamadas de procedimento armazenado aninhado.

select query_id, datediff(seconds, start_time, end_time) as elapsed_time, status, trim(query_text) as call, caller_procedure_query_id from sys_procedure_call;

Exemplo de resultado.

query_id | elapsed_time | status | call | caller_procedure_query_id ----------+--------------+---------+--------------------------------------------------+--------------------------- 3087 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d(1) | 3085 3085 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d_2(1); | (2 rows)