Oracle EE 11.2.0.4 - Standalone (sem grid) Senhores, em um determinado ambiente, está recorrente a abertura de chamado em relação a lentidão, e o que percebi consultando a v$session + v$process +session_event é que existe um usuário chamado XXXNAGIOS (USERNAME) que conecta por um server remoto (MACHINE MMMM) utilizando o SQLPLUS (MODULE SQLPLUS) todas as suas sessões ficam com status ACTIVE, todas elas estão tomando a WAIT SQL*NET message from client e não existe nenhum sql sendo executado no momento. Após matar essas sessões, o ambiente volta a normalizar. Esse é um usuário que conecta no database para realizar operações de monitoramento. Abri chamado com a Oracle para poder ajudar no que pode está ocorrendo, as sessões simplismente não desconectam e após os SQLs serem executados, continuam consumindo recurso da máquina e tomando a WAIT acima. Enquanto a Oracle não me dá uma solução definitiva, estava pensando em realizar um workaround em relação a isso.Seria criar um job que executasse uma PROCEDURE para matar essas sessões de tempos em tempos, gostaria da ajuda de vocês para montar a procedure já que faz muitos anos que trabalhei com pl/sql. O cursor para carregar os dados seria mais ou menos dessa forma: SELECT s.sid, s.serial# FROM v$session s, v$process p WHERE s.paddr = p.addr AND s.username = 'XXXNAGIOS' AND s.status = 'ACTIVE' AND s.module = 'SQL*PLUS' and s.machine = 'MMM' and s.last_call_et > 400;
e em um loop realizar o execute immediate ('alter system kill session ''vsid'', ''vserial'' immediate'); Alguém pode me ajudar a montar esse procedure? Lembrando que isso é somente uma ação paleativa enquanto não identificamos o que está causando esse comportamento no ambiente.