segunda-feira, 17 de outubro de 2016
Evento de espera: Pipe put
Podemos identificar o evento de espera "Pipe put" na execução do AWR, ASH ou através do comando:
select username,sid,serial#,logon_time,inst_id,sql_id,event from gv$session where username='XPTO'
O resultado do select irá mostrar o evento pipe put na coluna "event"
Quando existe uma ocorrência muito grande de pipe put, o processamento pode começar a ficar mais lento, pois o mesmo fica aguardando recurso para poder utilizar o pipe.
Uma solução possível é a limpeza do pipe, conforme descrito abaixo:
1) Identificar o pipe em utilização
SQL> Select * from v$db_pipe;
2) Fazer uma limpeza do conteúdo do Pipe.
SQL> exec dbms_pipe.purge('Name of pipe'); SQL> commit;
3) Reiniciar o buffer do pipe.
SQL> Exec dbms_pipe.reset_buffer; SQL> commit;
Após esses procedimentos, devemos reiniciar o processamento e/ou a sessão no banco de dados.
Obs.: Essa solução só é válida se o processamento que estamos fazendo puder ser reiniciado e se essa limpeza, não afetar outros processamentos do ambiente.
Referencias:
https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_pipe.htm#CHDDFCFChttps://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_pipe.htm#CHDEICJIhttps://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_pipe.htm#CHDICFGDhttp://www.toadworld.com/platforms/oracle/w/wiki/873.pipe-put