Spazio su disco per il log delle transazioni per operazioni sugli indici
Le operazioni sugli indici su larga scala possono generare carichi di dati di grandi dimensioni che possono causare un rapido riempimento del log delle transazioni. Per garantire la possibilità di esecuzione del rollback dell'operazione sull'indice, non è possibile troncare il log delle transazioni fino al completamento dell'operazione sull'indice. Durante tale operazione è tuttavia possibile eseguire il backup del log. Nel log delle transazioni deve pertanto esserci spazio sufficiente per archiviare sia le transazioni dell'operazione sull'indice che eventuali transazioni utente simultanee per la durata dell'operazione sull'indice. Questo è valido sia per le operazioni sugli indici in linea che non in linea. Poiché durante un'operazione sull'indice non in linea non è possibile accedere alle tabelle sottostanti, il numero di transazioni utente potrebbe essere basso e il log potrebbe non aumentare in modo eccessivamente rapido. Le operazioni sugli indici in linea non impediscono attività utente simultanee e pertanto le operazioni sugli indici su larga scala in combinazione con transazioni utente simultanee significative possono causare un aumento continuo del log delle transazioni senza che sia possibile troncarlo.
Consigli
Quando si eseguono operazioni sugli indici su larga scala, considerare i consigli seguenti:
Verificare di avere eseguito il backup del log delle transazioni e di averlo troncato prima di eseguire operazioni sugli indici in linea su larga scala e verificare che nel log vi sia spazio sufficiente per archiviare le transazioni utente e di indice previste.
Valutare l'opportunità di impostare l'opzione SORT_IN_TEMPDB su ON per l'operazione sull'indice. In questo modo, è possibile separare le transazioni di indice dalle transazioni utente simultanee. Le transazioni di indice verranno archiviate nel log delle transazioni del database tempdb e le transazioni utente simultanee verranno archiviate nel log delle transazioni del database utente. In questo modo, il log delle transazioni del database utente può essere troncato durante l'operazione sull'indice, se necessario. Se, inoltre, il log del database tempdb non si trova nello stesso disco del log del database utente, i due log non utilizzeranno lo stesso spazio su disco.
[!NOTA]
Verificare che nel database tempdb e nel log delle transazioni vi sia spazio su disco sufficiente per gestire l'operazione sull'indice. Il log delle transazioni di tempdb non può essere troncato prima del termine dell'operazione sull'indice.
Utilizzare un modello di recupero del database che consenta la registrazione minima dell'operazione sull'indice. In questo modo, sarà possibile ridurre la dimensione del log e impedire che il relativo spazio venga riempito. Per ulteriori informazioni, vedere Scelta di un modello di recupero per le operazioni sugli indici.
Non eseguire l'operazione sull'indice in linea in una transazione esplicita. Il log non verrà troncato fino al termine della transazione esplicita.
Vedere anche