Até o que eu sei .... quando vc cria uma constraint do tipo unique ou primary o
Oracle automaticamente cria indices o tipo unique para estes ...e se remover a
constraint o índice também é automaticamente removido... portanto não teria nem
a necessidade de você criar o índice ix_temp pois o Oracle criou
automaticamente para vc quando vc criou a constraint logo abaixo .... quanto a
performance esse é o tipo de coluna boa para criação de indices (onde o
distinct é alto) por isso que automaticamente ele cria ....a principio toda
coluna que tiver constraints ele verifica a integridade antes .... mesmo que
existam indices non-unique nestas colunas.
att.
Rosiano
-----Mensagem original-----
De: [email protected] em nome de dbaoracle (candangoNET)
Enviada: ter 26/07/2005 11:30
Para: [email protected]
Cc:
Assunto: [oracle_br] Dúvida com UNIQUE constraint/índice
Pessoal,
Tenho a seguinte situação:
create table temp (id number);
create index ix_temp on temp(id);
alter table temp add(constraint uk_temp unique (id));
SQL> insert into temp values(1);
1 row created.
SQL> insert into temp values(1);
insert into temp values(1)
*
ERROR at line 1:
ORA-00001: restrição exclusiva (MANUTENCAO.UK_TEMP) violada
A constraint UK_TEMP está fazendo o papel dela, mas vendo em
user_indexes o Ãndice não é UNIQUE, quando criamos uma constraint
UNIQUE
e as colunas referenciadas não estão indexadas o oracle se encarrega
de
criar um Ãndice UNIQUE para as colunas.
O que acontece quando as colunas já estão indexadas com um Ãndice
não
UNIQUE. Como o oracle irá identificar a duplicidade dos registros?
Terá
uma camada intermediária que fará essa verificação? Com a criação
da
constraint dessa forma a performance será prejudicada?
Obrigado,
Murilo Lima
Administrador de Banco de Dados Oracle
[EMAIL PROTECTED]
______________________________________________________________________
Histórico: http://www.mail-archive.com/[email protected]/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar
______________________________________________________________________
Links do Yahoo! Grupos
[As partes desta mensagem que não continham texto foram removidas]
______________________________________________________________________
Histórico: http://www.mail-archive.com/[email protected]/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar
______________________________________________________________________
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html