Bom dia colegas;
Estou comecando com orcle agora, (versao 10g) e estou fazendo alguns exercicios.
Dentre estes ele pede pra criar um indice que no caso sera o CPF, ate ai tudo bem
Resumindo: O Indice é um objeto de banco de dados que tem a intenção de otimizar o acesso aos seus dados quando esses dados estao distribuidos em diversos blocos.
Essa Tabelinha que criou pelo exercicio você deu alguma carga de dados nela??? deu alguns inserts??
Obs: Nem Sempre o Indice e a melhor foma de acesso aos seus dados.Porem não se preocupe que o Oracle lhe dira se é melhor ou não!! rsrs
Exato! Só pra complementar.
Pense em um índice da mesma forma que um "índice de um livro".
As vezes vale a pena usar, quando o livro é muito grande e você está buscando uma palavra exata. Dai vai no índice e acha exatamente a página que você quer.
Se o livro só tem 1 página, é mais rapido simplesmente IR pra sua página. (isso acontece também com o banco! As vezes o oracle opta por não usar o índice, pois é um passo a mais pra ele). As vezes é mais rapido varrer a tabela pois é pequena.
Ex: Sua Aplicacao tem uma query que o filtro dela é o CPF.
Logo você criara um indice para o seu campo CPF. Quanto usar ou não o seu indice. Não é de responsabilidade sua e sim do Proprio SGBD. Conforme um amigo meu: POR ISSO QUE O ORACLE é BOM PRA KRAMBA!!!
Conforme o nosso amigo completou.
dr_gori Enviada: Ter, 09 Dez 2008 11:19 am Assunto:
Se o livro só tem 1 página, é mais rapido simplesmente IR pra sua página. (isso acontece também com o banco! As vezes o oracle opta por não usar o índice, pois é um passo a mais pra ele). As vezes é mais rapido varrer a tabela pois é pequena.
Sim...
O oracle que decide se vai usar o índice e varias outras coisas. (por exemplo, se você ta usando várias tabelas na sua consulta, ele decide qual pegar primeiro, o que fazer depois, etc)
Isso é trabalho do nosso amigo "otimizador". Quem tem 2 tipos:
* CBO - Cost Based optimizer
* RBO - Rule Based optimizer (até a versão 8i )
O primeiro é bem mais eficiente, pois ele considera o numero de linhas de cada tabela, o tipo de informações, histogramas e uma série de coisas.
O outro, é o programador que informa "o que fazer primeiro"... Apesar que o uso de índices, mesmo nesse tipo é o ORACLE que escolhe.
É possível "manipular" isso! É chamado de HINTS. Tipo, tem como forçar o uso de um índice, ou forçar pra não usar.... Leia sobre HINTS pra entender mais.