Artigo: 209564 - Última revisão: quarta-feira, 30 de Junho de 2004 - Revisão: 2.0

ACC2000: Índices compostas deve 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 aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Expandir tudo | Reduzir tudo

Sumário

Antes de pode utilizar um índice, consultas com restrições sobre índices (compostos) de vários campos devem restringir, pelo menos, o primeiro campo do índice. No entanto, pode utilizar também campos adjacentes no índice (campos de até 10). Se a restrição for colocada num campo diferente no primeiro campo, o Optimizador de consultas verifica a tabela, em vez de utilizando o índice. Este não é sempre aconselhável, porque análises de tabela são mais lentas do que a procura de índice para a maioria das consultas.

Mais Informação

Por predefinição, quando é criado um índice composto no Microsoft Access, não índices individuais são atribuídos a campos incluídos no índice composto. Este comportamento ocorre por predefinição.

Para o Optimizador de consultas utilizar um índice, tem de utilizar uma comparação entre o primeiro campo no índice composto ou o primeiro campo e qualquer número de campos adjacentes (até à 10) que constituem o índice composto. Deve consultar campos indexados pela ordem que aparecem na caixa de diálogo índices , começando no primeiro campo indexado e continuando com campos adjacentes.

Nota : Este princípio também se aplica a utilizando critérios com o método Localizar no Visual Basic for Applications.

Por exemplo, considere uma tabela (T1) que tem três campos: key_part1, key_part2 e key_part3. Se existir um índice composto criado nestes três campos e todos os campos de chave primária, em seguida, a seguinte instrução de SQL não utiliza o índice porque não está a ser utilizado o primeiro campo, key_part1.
SELECT * FROM T1 WHERE key_part2 = <value>
				

Não efectua a seguinte instrução de SQL utiliza o índice. Embora key_part1 é referida, 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 uma das seguintes instruções SQL três utilizará 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 estão proibidos de ter índices individuais sobre eles. Índices individuais podem ser criados para cada campo, permitindo comparações esses campos com o índice de procura. Tenha em atenção, no entanto, que índices podem ocupar espaço como maior (ou mais) do que os dados.

Referências

Para obter mais informações sobre a criação de índices, clique em Ajuda do Microsoft Access no menu de Ajuda escreva criar um índice no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar os tópicos devolvidos.


Para mais informações sobre como optimizar consultas, clique em Ajuda do Microsoft Access no menu de Ajuda escreva optimizar o desempenho no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar os tópicos devolvidos.

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )