Il nostro server SQL vive su una SAN. Contiene dozzine di database OLTP, alcuni con diverse tabelle contenenti oltre 1 milione di record.
Abbiamo eseguito settimanalmente gli script di manutenzione dell'indice di Ola Hallengren , che funzionano per diverse ore ogni volta. In base alla soglia di frammentazione, lo script riorganizza o reindicizza un indice. Abbiamo osservato che durante la reindicizzazione, i file di registro diventano enormi, il che comporta un consumo eccessivo di larghezza di banda durante la spedizione dei registri.
Poi arriva un articolo di Brent Ozar in cui dice di smettere di preoccuparsi degli indici SQL :
I tuoi dischi rigidi sono condivisi con altri server che fanno anche richieste di unità contemporaneamente, quindi le unità salteranno sempre ovunque per ottenere dati. La deframmentazione degli indici è solo un lavoro occupato senza senso.
Cercare su Google questa domanda porta a opinioni diverse, la maggior parte supportate da argomenti che sembrano troppo brevi o deboli. Il nostro piano provvisorio è di regolare la soglia di frammentazione nel nostro script di manutenzione in modo che si riorganizzi molto più spesso di quanto reindicizzi.
Qual è il verdetto finale? Vale la pena deframmentare gli indici SQL su una SAN tenendo conto degli oneri associati all'esecuzione di lavori di manutenzione settimanali?