HINTs: Rest In Peace
O Banco de Dados que você cuida está com gargalos de I/O, infestado de Eventos db file sequential read, e todo SQL em execução tem uma Hint que força o uso de indíces?
Os desenvolvedores têm certeza que são mais inteligentes que o Oracle, e têm mais certeza ainda que Full Table Scan é ruim, e não é possível convence-los do contrário?
Nem tente mais.
Se está usando 10.2.0.1 ou superior, habilite este parâmetro:
_optimizer_ignore_hints=TRUE
E colete as estatíticas corretamente.
Se precisar utilizar uma HINT mais útil para o DBA (como PARALLEL), este parâmetro pode ser habilitado / desabilitado em sessão.
SQL> alter session set "_optimizer_ignore_hints"=FALSE;
Session altered.
SQL>
Boa essa, tática de guerrilha. De tempos em tempos ainda me deparo com uns /*+RULE*/ e first_rows() e outras coisas desse nível…
Eu tenho clientes com sistemas infestados de HINTs, e estou louco pra “sentar o dedo” neste parâmetro.
Abraço !