Condividi tramite


Recupero di set di risultati di grandi dimensioni

Quando è possibile che il set di risultati che verrà restituito conterrà più di 1000 elementi, è necessario usare una ricerca in pagina. Le ricerche di Active Directory eseguite senza paging sono limitate alla restituzione di un massimo dei primi 1000 record. Con una ricerca con paging, il set di risultati viene presentato come singole pagine, ognuna contenente un numero predeterminato di voci di risultato. Con questo tipo di ricerca, vengono restituite nuove pagine di voci di risultati fino al raggiungimento della fine del set di risultati.

Per impostazione predefinita, il server che risponde a una richiesta di query calcola completamente un set di risultati prima di restituire i dati. In un set di risultati di grandi dimensioni, questa operazione richiede la memoria del server durante l'acquisizione del set di risultati e la larghezza di banda di rete quando viene restituito il risultato di grandi dimensioni. L'impostazione di una dimensione di pagina consente al server di inviare i dati nelle pagine durante la compilazione delle pagine. Il client memorizza quindi nella cache questi dati e fornisce un cursore al codice a livello di applicazione. Il paging viene impostato definendo il numero di righe calcolate dal server prima che i dati vengano restituiti in rete al client.

La ricerca in pagine offre vantaggi sia per il client che per il server. Ad esempio, il client può essere più reattivo nella presentazione dei risultati agli utenti finali. Ciò è particolarmente rilevante per gli strumenti dell'interfaccia utente grafica in grado di visualizzare i dati mentre un altro thread riceve contemporaneamente più dati dal server.

Quando si configura la query, se si specifica un ordinamento per il set di risultati, il server deve calcolare completamente il set di risultati prima di restituire i dati al client, che influisce sul tempo di risposta per la query.

Sul lato server, la ricerca con paging rende l'operazione scalabile. Ad esempio, se cento client eseguono contemporaneamente richieste di ricerca e, in media, ogni client viene restituito 20.000 oggetti, se le dimensioni della pagina non vengono specificate, il server deve avere memoria sufficiente per contenere il set di risultati completo di 20.000 voci. In alternativa, se ogni client ha specificato una dimensione di pagina di dieci oggetti, i requisiti di memoria nel server verranno ridotti di un fattore pari a 20.

Nota

Non tutti i servizi directory supportano le ricerche in pagine. Active Directory implementa l'architettura delle dimensioni della pagina.

 

Molti server di directory specificano un limite Amministrazione istrativo per il numero massimo di oggetti che possono restituire se un client non specifica le dimensioni della pagina. Quando viene raggiunto il limite Amministrazione istrativo, ADSI genera l'errore Win32 ERROR_DS_ADMIN_LIMIT_EXCedizione Enterprise DED.

Sul lato client, una ricerca con paging consente a un client di arrestare l'operazione mentre è ancora in corso. Al contrario, in una ricerca non di paging, il client viene bloccato fino a quando i dati non vengono restituiti completamente o si verifica un errore. Ciò potrebbe influire sulle prestazioni di rete se il set di risultati risulta essere più grande e richiede più tempo del previsto.

Per conto del client, ADSI gestisce le dimensioni della pagina in modo trasparente. Il client non deve contare il numero di oggetti in corso. ADSI incapsula l'interazione del server per il client. Dal punto di vista del client, la ricerca restituisce un set di risultati completo.

Per altre informazioni sull'uso dell'opzione di timeout della ricerca con un'interfaccia di ricerca specifica, vedere:

Una ricerca con paging è trasparente per l'applicazione perché ADSI continua automaticamente a recuperare pagine aggiuntive di risultati fino a raggiungere la fine del set di risultati o la fine del limite di tempo impostato. Quando si usa una ricerca con paging, il limite delle dimensioni non sostituisce le dimensioni della pagina. Il limite di dimensioni può essere usato solo quando si recupera un set di risultati contenente meno di 1000 voci.