domingo, 1 de fevereiro de 2015

_FIX_CONTROL

Na versão 10.2.0.2 do banco de dados Oracle, surgiu um parâmetro  oculto chamado _FIX_CONTROL, que pode ser usado para habilitar ou desabilitar certas correções de bugs.

Este parâmetro é mais comumente associado ao otimizador, mas pode também ser usado em problemas de outras áreas.

Lembre-se que por se tratar de um parâmetro oculto, deve ser modificado apenas com apoio do suporte da Oracle.

Mas por que eu desabilitaria a correção de um bug ?

A resposta é simples, as vezes, a correção de um bug específico pode ter efeitos colaterais e  causar outros problemas.

Também devemos levar em consideração, que algumas correções não são ativadas por default.

A lista completa dos números de bugs pode ser encontrada nas seguintes visões:


select * from V$SYSTEM_FIX_CONTROL;



select * from V$SESSION_FIX_CONTROL




A coluna VALUE, mostra o estado corrente do bug fix:


0 = desativado
1 = ativado

Lembre-se de verificar se a coluna OPTIMIZER_FEATURE_ENABLE está de acordo com o seu parâmetro de banco OPTIMIZER_FEATURES_ENABLE.



Para desabilitar:


ALTER SESSION SET "_fix_control"='12864791:OFF';
ALTER SESSION SET "_fix_control"='12864791:0';

Para habilitar:


ALTER SESSION SET "_fix_control"='12864791:ON';
ALTER SESSION SET "_fix_control"='12864791:1';

Múltiplos:


ALTER SESSION SET "_fix_control"='12864791:OFF','12605402:OFF';

A nível de sistema:


ALTER SYSTEM SET "_fix_control"='12864791:OFF','12605402:OFF';

Para um SELECT específico, podemos utilizar o hint OPT_PARAM:


SELECT /*+ OPT_PARAM('_fix_control' '12864791:OFF') */ *
FROM ...



Referências:

init.ora Parameter "_FIX_CONTROL" [Hidden] Reference Note (Doc ID 567171.1)



Abraço,

Alex Zaballa.

0 comentários: