Dando continuidade à sessão ORACLE DATABASE postarei mais uma sacada rápida, porém funcional, que é uma consulta que te mostra quais as sessões ativas no Oracle e como eliminar estas sessões.
Normalmente esta necessidade surge quando:
- Sua equipe de desenvolvimento está utilizando uma base ( seja de produção / Homologação / Desenvolvimento ). Isto pode acontecer, por exemplo, quando alguma instrução que acessa o banco não fecha a conexão após obter a informação desejada. Assim, com a conexão aberta pode gerar um número desnecessários de sessões ativas.
- Outra necessidade é quando você precisa parar processos/ jobs que estão sendo executados na base de dados e que, por algum motivo, precisam ser paradas abruptamente.
Assim, toda vez que você quiser identificar os usuários (sessões) que estão ativos ( conectados em seu banco) você pode utilizar a consulta ( como ela está, sem alterações) abaixo :
SELECT s.username,
s.osuser,
s.sid,
s.serial#,
p.spid,
s.status,
s.machine,
s.program,
TO_CHAR(s.logon_Time,’DD-MON-YYYY HH24:MI:SS’) AS logon_time
FROM v$session s
inner join v$process p
on s.paddr = p.addr
WHERE s.status = ‘ACTIVE’
and s.type <> ‘BACKGROUND’
Percebendo que o número de usuários conectados está elevado e após analisar os acessos perceber quem está ou não utilizando a sessão, você pode “derrubá-los” executando o script abaixo:
ALTER SYSTEM KILL SESSION ‘sid,serial#’ IMMEDIATE;
É isso ai pessoal, espero ter ajudado.
Dúvidas, entre em contato.
Forte abraço.
Eduardo Santana
bufallos@bufallos.com.br