Création de requêtes efficaces

Le tableau suivant identifie les concepts importants à prendre en compte lors de la création d’une requête efficace.

Domaine Description
Indexation Vérifiez que le filtre de requête contient au moins un attribut indexé.
Pour plus d’informations, consultez Attributs indexés.
Class / Catégorie L’instruction « objectClass=xyz » fait référence aux objets de répertoire dans lesquels « xyz » représente n’importe quelle classe dans la hiérarchie de classes d’objets, tandis que « objectCategory=xyz » fait référence aux objets de répertoire dans lesquels « xyz » identifie une classe spécifique dans la hiérarchie de classes d’objets. La propriété objectClass peut prendre plusieurs valeurs, tandis que la propriété objectCategory prend une seule valeur et est donc mieux adaptée à la correspondance de type d’objets dans une recherche de répertoire.
Recherche de texte Évitez de rechercher du texte au milieu et à la fin d’une chaîne.
Par exemple, « cn=*hille* » ou « cn=*larouse ».
L’utilisation de critères de correspondance plus spécifiques a tendance à augmenter le niveau de performance de la recherche. Cela est dû au fait qu’Active Directory Domain Services évalue tous les prédicats, identifie les index, puis choisit un index plus susceptible de générer le plus petit ensemble de valeurs retournées. Cette technique ne fonctionne pas bien avec les recherches en milieu et en fin de chaîne. Si vous n’avez pas d’autre option que d’utiliser ces recherches, vous pouvez définir un index tuple pour l’attribut.
Pour plus d’informations sur les index tuple, consultez Fonctionnement de l’indexation tuple.
Recherche dans les sous-arborescences Si vous envisagez des recherches dans des sous-arborescences, utilisez le catalogue global. La recherche de références nécessite d’importantes ressources.
Pour plus d’informations, consultez Spécifier d’autres options de recherche.
Utilisation de la pagination Supposons qu’une recherche dans une sous-arborescence renvoie un ensemble important de résultats. Lorsque vous exécutez des recherches dans des sous-arborescences, utilisez la pagination. Le serveur diffusera en continu des blocs de l’ensemble de résultats, réduisant ainsi les ressources mémoire côté serveur. Cela minimise l’utilisation du réseau et réduit la nécessité d’envoyer des blocs de données volumineux sur un réseau.
Pour plus d’informations, consultez Spécifier d’autres options de recherche.
Combiner des recherches Utilisez plusieurs attributs pour une recherche. Une recherche d’objet lisant deux attributs est plus efficace que deux recherches du même objet renvoyant chacune un seul attribut.
Utilisation efficace de la liaison Liez à un objet une fois et maintenez la poignée de liaison pendant le reste de la session. Évitez de lier et d'annuler la liaison pour chaque appel. Si vous utilisez ADO ou OLE DB, ne créez pas de nombreux objets de connexion.
Mise en cache RootDSE Lisez le rootDSE une fois et souvenez-vous de son contenu pour le reste de votre session.
Pour plus d’informations, consultez Liaison serverless et RootDSE.
Persistance de référence Conservez les références aux objets sous forme de GUID, et non de noms uniques, afin qu’elles soient renommées et supprimées en toute sécurité.
Pour plus d’informations, consultez Utilisation d’objectGUID pour lier à un objet.