Uma coisa a ter em conta é que matar uma sessão no Oracle não impede necessariamente que a sessão do usuário (e processos associados) consumam recursos. Assim, uma consulta de fuga pode continuar a fugir, consumindo recursos como CPU e E / S e retendo bloqueios, até que ele volte a fazer o processo / thread do monitor de processo (pmon) do Oracle.
Assumindo o Oracle em execução em um sistema Unix no modo "conexão dedicada", é possível unir v $ session e v $ process em v $ session.paddr = v $ process.addr para localizar todas as sessões e processos para um dado conexões do usuário e use o comando kill
do UNIX% com SIGKILL
para eliminar os processos subjacentes do servidor para as sessões do usuário. O pmon irá então limpar a sessão com falha, revertendo todas as transações e liberando os bloqueios.
Esta é definitivamente uma abordagem de big-hammer quando a abordagem que Peter Lang apontou anteriormente não está matando as sessões do usuário agressivamente o suficiente.