Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Use gv$session para saber se uma consulta está suspensa


Em gv$session , o event coluna informa qual evento de espera sua sessão está aguardando no momento. Se sua sessão estiver aguardando algum tipo de bloqueio mantido por outra sessão, o event informará isso (por exemplo, será "enq:TX - contenção de bloqueio de linha" se você estiver na fila aguardando para bloquear uma linha mantida por outra sessão) e blocking_instance e blocking_session será preenchido com a instância e o ID de sessão do detentor do bloqueio. Você também pode ver seconds_in_wait (se wait_time=0 ) para determinar quantos segundos a sessão gastou no evento de espera atual. Isso deve pelo menos informar se sua sessão está "travada" no momento, mas não informa se sua consulta realmente terminará - se houver um plano ruim, é perfeitamente possível que você tenha "bom" wait eventos como esperas por E/S de disco que indicam que a sessão está fazendo algo, mas que a consulta nunca realmente terminará.