Qual è la funzione di ricostruzione degli indici?


8

Sono giovane nel mondo IT e sto imparando ogni giorno. Ho appena iniziato a lavorare con i database SQL e ho molte domande di base.

Uno in particolare, qual è la funzione di ricostruzione degli indici? Devo ancora trovare una buona risposta tramite Google.

Qualsiasi feedback è apprezzato.

Risposte:


11

Gli indici vengono ricostruiti per rimuovere la frammentazione. Ci sono mille articoli e post di blog sulla natura della frammentazione dell'indice ma @BrentOzar ha recentemente pubblicato una spiegazione particolarmente concisa in Stop Worrying About SQL Server Fragmentation .

Facciamo un passo indietro di un secondo e facciamo finta che il tuo database sia una rubrica organizzata per cognome, nome.

Man mano che le persone si spostano nella tua città, dobbiamo aggiungerle all'elenco telefonico. Idealmente, ogni pagina ha uno spazio vuoto e lo governiamo con il fattore di riempimento. Quando SQL Server ricostruisce gli indici, utilizza il fattore di riempimento per decidere la quantità di spazio libero da lasciare su ciascuna pagina. Se lo spazio disponibile non è sufficiente, SQL Server deve eseguire alcune modifiche, ma non è in grado di inserire esattamente una nuova pagina nel mezzo della rubrica. Il libro è già rilegato. Dovremo aggiungere più pagine vuote alla fine.

Problema n. 1 - Frammentazione interna: abbiamo una pagina appena aggiunta con quasi nessuna roba su di essa. Problema n. 2 - Frammentazione esterna: le pagine della rubrica sono fuori servizio.

Il recente articolo di Brent offre una prospettiva aggiornata su una delle sue serie precedenti, Index Fragmentation Findings . L'articolo più vecchio mette in evidenza le statistiche di studi molto più vecchi sugli effetti dannosi della frammentazione, il più recente è un motivo per mitigare una grande percentuale degli svantaggi delle prestazioni assicurando che il database sia completamente memorizzato nella cache.

La RAM è ora così comicamente economica che è probabilmente la soluzione più economica, più semplice, a basso rischio per un database fortemente frammentato. Soprattutto se la natura della progettazione del database è tale che sarà naturalmente frammentata nonostante gli sforzi di manutenzione.


3

La risposta troppo semplificata: la ricostruzione dell'indice è un modo per rimuovere la frammentazione dell'indice. Elimina l'indice specificato e crea di nuovo rimuovendo la frammentazione nel processo. Puoi trovare utile questo articolo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.