V$SESSION_LONGOPS - como matar a sessão?

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Itimura
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 18 Mai 2009 8:47 am
Localização: Suzano - SP
Qual é o valor do conhecimento?

Olá pessoal tudo bem?

Saibam que tenho aprendido muito com vocês, mas hoje a dúvida é minha

tenho observado por meio da query:

Selecionar tudo

SELECT SID,
            SERIAL#,
            START_TIME,
            ((SOFAR/TOTALWORK)*100),'%',
            MESSAGE 
  FROM V$SESSION_LONGOPS 
  where TIME_REMAINING > 0 ORDER BY start_time;

Os processos que estão demorando para serem finalizados e muitos deles chegam a demorar cerca de uns 30 min para serem concluídos e nisso o meu banco vai a baixo em performance, muitos são logs desnecessários

já achei a solução para meu problema e desabilitamos a trigger

Porém ficou uma dúvida,
Eu nunca consegui matar a sessão que foi visualizada pela query acima

Faço uso do PL/SQL Developer e vou em Tools>Sessions mostrando todo o processo que esta ocorrendo por traz das rotinas do sistema, só que lá eu não encontro o SID e SERIAL# mostrados na query

A pergunta é,

Como matar uma session mostrada pela query apresentada?

Obrigado a todos

Douglas Itimura
gleisoncandido
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Dom, 20 Mai 2012 2:29 pm
Contato:

Douglas Boa Noite
você já usou o comando alter system kill session 'SID,#SERIAL'; :?:
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

@Itimura

Conforme já indicado pelo @gleisoncandido, você pode executar a opção "a)" para matar uma sessão após finalização da transação atual:

a) alter system kill session 'SID,#SERIAL';

OU a opção "b)" para matar uma sessão imediatamente e fazer rollback na transação atual

b) alter system kill session 'SID,#SERIAL' IMMEDIATE;

Também é possível consultar a V$PROCESS (fazendo join com V$SESSION) para descobrir o número do processo da sessão no SO e matar o processo diretamente no SO, em uma janela de terminal do linux (por exemplo), através do comando abaixo:
kill -9 pid

Obs.: pid é o número do processo consultado na V$PROCESS

[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes