Funzionamento dell'indicizzazione delle tuple
Gli indici di tupla vengono usati per ottimizzare le ricerche con 0 o più stringhe di ricerca mediale e 0 o 1 stringhe di ricerca finale. Possono essere usati anche per ottimizzare le ricerche per una stringa di ricerca iniziale se non è disponibile alcun indice ordinario su tale attributo.
È possibile attivare l'indicizzazione della tupla per un attributo impostando bit 5, che corrisponde al valore 32, nell'attributo searchFlags . Questo attributo viene impostato nell'oggetto schema che rappresenta l'attributo che richiede l'indice della tupla. L'impatto sulle prestazioni dell'attivazione dell'indicizzazione della tupla è che qualsiasi valore stringa impostato per tale attributo verrà espanso in un numero elevato di frammenti nell'indice della tupla. Quando un attributo si espande, usa una quantità maggiore di spazio su disco nel file albero delle informazioni directory e viene aggiornato più lentamente.
Gli indici di tupla sono progettati per accelerare le ricerche nel formato *string*
. L'accelerazione può essere notevole perché questa forma di ricerca non può essere ottimizzata in altro modo e, nel formato non ottimizzato, impone al server Active Directory di eseguire la procedura per eseguire la query per ogni oggetto nell'ambito della ricerca. Pertanto, una ricerca di base cerca solo un oggetto, che userebbe meno risorse, una ricerca immediata degli elementi figlio cercherebbe solo gli elementi figlio di un oggetto (che potrebbe usare meno risorse o più risorse a seconda delle dimensioni del contenitore) e una ricerca sottoalbero passerà l'intero sottoalbero sottoalbero sotto l'oggetto base, che in genere richiederebbe molte risorse e sarebbe molto lento a causa delle dimensioni del sottoalbero.
Gli indici di tupla funzionano suddividendo una stringa in tuple. Ad esempio, la stringa "Active Directory" viene suddivisa nelle tuple seguenti:
"Active Dir"
"ctive Dire"
"tive Direc"
"ive Direct"
"ve Directo"
"e Director"
" Directory"
"Directory"
"irectory"
"rectory"
"ectory"
"ctory"
"tory"
"ory"
Nota
La directory si arresterà a 32767 caratteri durante l'espansione di una stringa per l'indicizzazione della tupla.
Un indice di tupla conterrà una voce per ognuna di queste tuple. Pertanto, se un utente cerca *cto*
, il server Active Directory cercherà tutte le corrispondenze per "cto" nell'indice e, in questo caso, trovare un puntatore al record con un attributo (con indicizzazione tupla) con valore "Directory".
Se la stringa di ricerca mediale (*cto*
nell'esempio precedente) è abbastanza specifica, la ricerca sarà abbastanza efficiente perché riduce notevolmente il numero di oggetti che il server Active Directory deve controllare per eseguire la query.