Criar consultas eficientes

A tabela a seguir identifica conceitos importantes a serem considerados ao criar uma consulta eficiente.

Área Descrição
Indexação Certifique-se de que o filtro de consulta contenha pelo menos um atributo indexado.
Para obter mais informações, confira Atributos indexados.
Classe vs. Categoria A instrução "objectClass=xyz" refere-se a objetos de diretório nos quais "xyz" representa qualquer classe na hierarquia da classe de objeto, enquanto "objectCategory=xyz", refere-se aos objetos de diretório nos quais "xyz" identifica uma classe específica na hierarquia da classe de objeto. A propriedade objectClass pode ter vários valores, enquanto objectCategory usa um único valor e, portanto, é mais adequada para correspondência de tipos de objetos em uma pesquisa de diretório.
Pesquisa de texto Evite pesquisar texto no meio e no final de uma cadeia de caracteres.
Por exemplo, "cn=*hille*" ou "cn=*larouse".
Usar critérios de correspondência mais específicos tende a aumentar o desempenho da pesquisa. Isso ocorre porque o Active Directory Domain Services avaliará todos os predicados, identificará os índices e escolherá um índice com maior probabilidade de produzir o menor conjunto de valores retornados. Essa técnica não funciona bem com pesquisas de cadeia de caracteres intermediária e final. Se você não tiver outra opção além de usar essas pesquisas, poderá definir um índice de tupla para o atributo.
Para obter mais detalhes sobre índices de tuplas, confira Como funciona a indexação de tuplas.
Pesquisa de subárvores Use o catálogo global se você estiver considerando pesquisas de subárvores. A busca de indicações requer recursos extensos.
Para obter mais informações, confira Especificar outras opções de pesquisa.
Uso da paginação Suponha que uma pesquisa de subárvore retornará um conjunto de resultados grande. Use a paginação ao executar pesquisas de subárvores. O servidor transmitirá um conjunto de resultados grande em partes, reduzindo os recursos de memória do lado do servidor. Isso minimiza o uso da rede e reduz a necessidade de enviar grandes partes de dados em uma rede.
Para obter mais informações, confira Especificar outras opções de pesquisa.
Combinar pesquisas Usar vários atributos para uma pesquisa. Uma pesquisa de um objeto que lê dois atributos é mais eficiente do que duas pesquisas do mesmo objeto, cada uma retornando um atributo.
Uso eficiente da associação Associe a um objeto uma vez e segure o identificador de associação para o restante da sessão. Não associe e desassocie para cada chamada. Se você usar ADO ou OLE DB, não crie muitos objetos de conexão.
Cache RoodDSE Leia o RootDSE uma vez e lembre-se de seu conteúdo para o restante da sessão.
Para obter mais informações, confira Associação sem servidor e RootDSE.
Persistência de referência Persista referências a objetos como GUIDs, nomes não diferenciados, a fim de serem renomeados e excluídos com segurança.
Para obter mais informações, confira Como usar objectGUID para associar a um objeto.