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. |