ID do artigo: 209564 - Última revisão: quarta-feira, 30 de junho de 2004 - Revisão: 2.0

ACC2000: Índices compostos devem restringir o primeiro campo indexado

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Expandir tudo | Recolher tudo

Sumário

Para que um índice pode ser usado, consultas com restrições em índices (compostos) de vários campos devem pelo menos restringir o primeiro campo do índice. No entanto, você pode também usar campos adjacentes no índice (até 10 campos). Se a restrição for colocada em um campo diferente do primeiro campo, o otimizador de consulta verifica a tabela, em vez de usar o índice. Isso nem sempre é desejável, como verificações de tabela são mais lentas do que índice procura a maioria das consultas.

Mais Informações

Por padrão, quando um índice composto é criado no Microsoft Access, não há índices individuais são atribuídos para os campos incluídos no índice composto. Esse comportamento é por design.

Para o otimizador de consulta usar um índice, você deve usar uma comparação entre o primeiro campo no índice composto ou o primeiro campo e qualquer número de campos adjacentes (até 10) que compõem o índice composto. Você deve consultar os campos indexados na ordem em que aparecem na caixa de diálogo índices , começando com o primeiro campo indexado e continuando pelos campos adjacentes.

Observação : Este princípio também se aplica ao uso critérios com o método Find no Visual Basic for Applications.

Por exemplo, considere uma tabela (T1) que possui três campos: key_part1, key_part2 e key_part3. Se houver um índice composto criado nesses três campos e todos os campos são a chave primária, em seguida, a instrução SQL a seguir não usa o índice, porque o primeiro campo, key_part1, não está sendo usado.
SELECT * FROM T1 WHERE key_part2 = <value>
				

Não faz a seguinte instrução SQL usa o índice. Embora key_part1 é chamado, key_part1 e key_part3 não são campos adjacentes.
SELECT * FROM T1 WHERE key_part1 = <value> AND key_part3 = <value>
				

No entanto, cada um dos três instruções SQL a seguir usará o índice porque cada incluem o primeiro campo, ou o primeiro campo e um ou mais campos adjacentes do índice composto:
SELECT * FROM T1 WHERE key_part1 = <value>

SELECT * FROM T1 WHERE key_part1 = <value> AND key_part2 = <value>

SELECT * FROM T1 WHERE key_part1 = <value> AND key_part2 = <value> AND key_part3 = <value>
				

Os campos acima não são proibidos de ter índices individuais sobre eles. Índices individuais podem ser criadas para cada campo, permitindo que as comparações desses campos com pesquisas de índice. Esteja ciente, no entanto, que índices podem ocupar espaço como muito (ou mais) que os dados.

Referências

Para obter mais informações sobre a criação de índices, clique em Ajuda do Microsoft Access no menu Ajuda , digite criar um índice no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir os tópicos retornados.


Para obter mais informações sobre como otimizar consultas, clique em Ajuda do Microsoft Access no menu Ajuda , digite a otimizar o desempenho no Assistente do Office ou no Assistente de resposta e, em seguida, clique em Pesquisar para exibir os tópicos retornados.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbinfo kbusage KB209564 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 209564  (http://support.microsoft.com/kb/209564/en-us/ )