Condividi tramite


Ambito della query

L'ambito di una query è determinato dall'oggetto a cui si esegue l'associazione. Se non si è certi della posizione dell'oggetto all'interno dell'organizzazione, sarà necessario eseguire una ricerca il più ampia possibile. Tuttavia, se si sa che l'oggetto sarà contenuto all'interno di un dominio specifico, ad esempio il dominio a cui l'utente è connesso o all'interno di un gruppo specifico, ad esempio il gruppo Manager, è necessario impostare l'ambito della ricerca in modo da riflettere la circostanza. Per ottenere prestazioni ottimali, è consigliabile provare a definire come destinazione l'ambito per cercare il minor numero possibile di oggetti.

Quando non si è certi della posizione di un oggetto nell'organizzazione, è possibile eseguire il binding al servizio catalogo globale. Il servizio catalogo globale contiene un elenco di ogni oggetto nella directory e un piccolo subset degli attributi di ogni oggetto. Dopo aver trovato l'oggetto nel catalogo globale, è possibile recuperarne il nome distinto dal catalogo globale e usarlo per eseguire l'associazione all'oggetto per eseguire altre operazioni.

Dopo aver stabilito l'oggetto a cui eseguire l'associazione, è possibile limitare ulteriormente la query a uno degli ambiti seguenti: una query di base, una query di un livello o una ricerca di sottoalbero, come illustrato nella figura seguente.

objects at the root of a search for a base, one-level, or subtree search

Base

Una query di base limita la ricerca solo all'oggetto di base. Il numero massimo di oggetti restituiti è sempre uno. Questa ricerca può essere utilizzata per verificare l'esistenza di un oggetto . Ad esempio, se si dispone del nome distinto di un oggetto ed è necessario verificare l'esistenza dell'oggetto in base al percorso, è possibile usare una ricerca a un livello. Se la ricerca non riesce, è possibile presupporre che l'oggetto sia stato rinominato o spostato in una posizione diversa o che siano stati forniti dati non corretti sull'oggetto. Tenere presente che è necessario archiviare il GUID anziché il nome distinto se si desidera rivedere un oggetto. In questo modo l'oggetto può essere rinominato o spostato nella gerarchia di directory senza interrompere il collegamento persistente.

Un Livello

Una ricerca a un livello è limitata agli elementi figlio immediati di un oggetto di base, ma esclude l'oggetto di base stesso. Questa impostazione può eseguire una ricerca mirata di oggetti figlio immediati di un oggetto padre. Ad esempio, se si dispone di un oggetto padre denominato P1 e i relativi figli immediati sono: C1, C2, C3, quindi in una ricerca a un livello, C1, C2 e C3 devono essere inclusi durante la valutazione dei criteri, ma P1 non farà parte della ricerca. Una ricerca a un livello può essere utilizzata per enumerare tutti gli elementi figlio di un oggetto . Infatti, in alcuni provider ADSI, l'enumerazione IADsContainer si traduce in una ricerca a un livello.

Sottoalbero

Una ricerca sottoalbero, nota anche come ricerca approfondita, include tutti gli oggetti sotto l'oggetto di base, escluso l'oggetto di base stesso. Questa ricerca può generare segnalazioni ad altri server. Questa ricerca ha il massimo ambito e può restituire un set di risultati di grandi dimensioni. Se possibile, cercare almeno un attributo indicizzato e impostare le impostazioni delle segnalazioni (per altre informazioni, vedere Prestazioni e gestione di set di risultati di grandi dimensioni) in base ai requisiti di ricerca. Si consiglia inoltre di eseguire i risultati di una ricerca sottoalbero in modo asincrono e di paging per ridurre l'overhead del server e l'efficacia della rete. Una ricerca sottoalbero viene in genere usata per cercare oggetti per un determinato ambito. Ad esempio, cercare tutti gli utenti con account che scadranno entro 30 giorni o meno.