Forçando um índice no Oracle

[ad#texto]

O Oracle tem um controle estatístico bem inteligente, que tem a função de determinar, entre outros aspectos qual o melhor índice da tabela aplicar a sua QUERY, tudo isso para assegurar o menor custo possível, resumindo, ele pensa para otimizar a performance da sua QUERY, aliviando a carga do desenvolvedor PL/SQL, note ele vai ajudar o desenvolvedor e não substitui-lo.

Porém, embora bem funcional não seja perfeito, existem casos que a coleta de estatísticas pode induzir o Oracle a utilizar um índice menos otimizado para a situação, é aí que devemos então forçar qual índice deve ser utilizado.

A sintaxe básica é a seguinte:

/*+ index(nome_tabela nome_indice)*/

Isso mesmo, o comando é adicionado como um comentário na sua QUERY, veja alguns exemplos:

DELETE /*+ index(nome_tabela nome_indice)*/
FROM sua_tabela f
WHERE f.cod_campo = 1
 AND f.ind_valor = ‘x’

Ou se preferir pode utilizar em um SELECT também.

SELECT /*+ index(nome_tabela nome_indice)*/
FROM sua_tabela f
WHERE f.cod_campo = 1
 AND f.ind_valor = ‘x’

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.