DICAS PARA CRIAÇÃO DE ÍNDICE

Deparei com um material bem interessante que traz algumas “premissas” para a criação de indices.

Segue a lista de sugestões:

Crie Indices quando:
Uma coluna contiver uma grande faixa de valroes
Uma coluna contiver muitos valores nulos
Quando uma ou mais colunas forem usadas frequentemente em clausulas WHERE ou em JOINS
Se a tabela for muito grande e as consultas realizadas recuperarem menos de 5% dos registros.
NÃO Crie Indices quando:
As colunas não são usadas frequentemente como condição nas consultas
A tabela for pequena ou se os resultados das consultas forem maiores que 5-10% dos registros.
A tabela for atualizada com frequencia
As colunas fizerem parte de uma expressão*

* Nesse item entende-se por expressão algo na clausula where tipo:

SELECT TABLE_NAME
FROM ALL_TABLES
WHERE TABLE_NAME||OWNER = 'DUALSYS'

Observe que na clausula de comparação as colunas TABLE_NAME e OWNER fazem uma expressão de comparação e por consequencia um índice não ajudaria em nada.


Outras coisas importantes de lembrar:

  • ÍNDICES NÃO SÃO ALTERÁVEIS! (Para vc alterar um índice vc deve removê-lo e recriá-lo. )
  • ÍNDICES ONERAM A PERFORMANCE DE INSERT / UPDATE  ( Não dá pra fazer milagres, se sua tabela tiver muitos índices as performances de alterações podem ser comprometidas )

Deixe uma resposta