Spazio su disco per il log delle transazioni per operazioni sugli indiciTransaction Log Disk Space for Index Operations

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.Large-scale index operations can generate large data loads that can cause the transaction log to fill quickly. 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.To make sure that the index operation can be rolled back, the transaction log cannot be truncated until the index operation has completed; however, the log can be backed up during the index operation. 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.Therefore, the transaction log must have sufficient room to store both the index operation transactions and any concurrent user transactions for the duration of the index operation. Questo è valido sia per le operazioni sugli indici online che non offline.This is true for both offline and online index operations. Poiché durante un'operazione sull'indice offline non è possibile accedere alle tabelle sottostanti, il numero di transazioni utente potrebbe essere basso e il log potrebbe non aumentare in modo eccessivamente rapido.Because the underlying tables cannot be accessed during an offline index operation, there may be few user transactions and the log may not grow as quickly. Le operazioni sugli indici online 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.Online index operations do not prevent concurrent user activity, therefore, large-scale online index operations combined with significant concurrent user transactions can cause continuous growth of the transaction log without an option to truncate the log.

IndicazioniRecommendations

Quando si eseguono operazioni sugli indici su larga scala, considerare i consigli seguenti:When you run large-scale index operations, consider the following recommendations:

  1. Verificare di avere eseguito il backup del log delle transazioni e di averlo troncato prima di eseguire operazioni sugli indici online su larga scala e verificare che nel log vi sia spazio sufficiente per archiviare le transazioni utente e di indice previste.Make sure the transaction log has been backed up and truncated before running large-scale index operations online, and that the log has sufficient space to store the projected index and user transactions.

  2. Valutare l'opportunità di impostare l'opzione SORT_IN_TEMPDB su ON per l'operazione sull'indice.Consider setting the SORT_IN_TEMPDB option to ON for the index operation. In questo modo, è possibile separare le transazioni di indice dalle transazioni utente simultanee.This separates the index transactions from the concurrent user transactions. Le transazioni di indice verranno archiviate nel log delle transazioni di tempdb e le transazioni utente simultanee verranno archiviate nel log delle transazioni del database utente.The index transactions will be stored in the tempdb transaction log, and the concurrent user transactions will be stored in the transaction log of the user database. In questo modo, il log delle transazioni del database utente può essere troncato durante l'operazione sull'indice, se necessario.This allows for the transaction log of the user database to be truncated during the index operation if it is required. Se, inoltre, il log del database tempdb non si trova nello stesso disco del log del database utente, i due log non useranno lo stesso spazio su disco.Additionally, if the tempdb log is not on the same disk as the user database log, the two logs are not competing for the same disk space.

    Nota

    Verificare che nel database tempdb e nel log delle transazioni vi sia spazio su disco sufficiente per gestire l'operazione sull'indice.Verify that the tempdb database and transaction log have sufficient disk space to handle the index operation. Il log delle transazioni di tempdb non può essere troncato prima del termine dell'operazione sull'indice.The tempdb transaction log cannot be truncated until the index operation is completed.

  3. Utilizzare un modello di recupero del database che consenta la registrazione minima dell'operazione sull'indice.Use a database recovery model that allows for minimal logging of the index operation. In questo modo, sarà possibile ridurre la dimensione del log e impedire che il relativo spazio venga riempito.This may reduce the size of the log and prevent the log from filling the log space.

  4. Non eseguire l'operazione sull'indice online in una transazione esplicita.Do not run the online index operation in an explicit transaction. Il log non verrà troncato fino al termine della transazione esplicita.The log will not be truncated until the explicit transaction ends.

Requisiti di spazio su disco per operazioni DLL sugli indiciDisk Space Requirements for Index DDL Operations

Esempio di spazio su disco per gli indiciIndex Disk Space Example