Dentre as novas funcionalidades do banco de dados Oracle 12c, está o parâmetro TEMP_UNDO_ENABLED . Este parâmetro, conforme a Oracle ” … determina se as transações dentro de uma determinada sessão pode ter um undo log temporário” , diferenciando das versões anteriores de banco de dados, que tinha somente um undo log para cada transação . Assim, efetuando mudanças em objetos temporários – através dos undo log temporários, e objetos permanentes – através dos undo log permanentes.
É um parâmetro que pode ser alterado tanto a nível de sessão , quanto a nível de sistema, com os comandos respectivamente “alter session set temp_undo_enabled=TRUE ” e “alter system set temp_undo_enabled=TRUE”.
Quando habilitado, este parâmetro fornece performance ao banco de dados, pois gera paralelismo (fluxo temporário e fluxo permanente) em operações de undo, causando diminuição, por exemplo, do redo log do banco de dados em questão. Outro fator relevante, é que este parâmetro possui o valor padrão de “FALSE”, como se pode ver no exemplo abaixo:
SQL> show parameter TEMP_UNDO_ENABLED NAME TYPE VALUE ------------------------------------ ----------- ------- temp_undo_enabled boolean FALSE SQL> alter session set temp_undo_enabled=TRUE; Session altered.
— Após a modificação
SQL> show parameter TEMP_UNDO_ENABLED NAME TYPE VALUE ------------------------------------ ----------- ------- temp_undo_enabled boolean TRUE
Reitera-se, que este parâmetro só é aplicado para database prymary e não standby database, pois neste último, estas operações (similiares do parâmetro TEMP_UNDO_ENABLED = true), é ativado por padrão neste tipo de banco de dados.
Recomendo a leitura deste parâmetro na íntegra.
Espero ter ajudado,
abraços

DBA ORACLE na International Business Machines (IBM), fornecendo suporte para grandes clientes. Técnico em Informática pela Escola Técnica Polivalente de Americana e estudante de Ciência Computação . Mantenedor do Weblog sobre Banco de Dados Oracle e Gerenciamento de Serviços de TI: www.brunors.com