Espacio en disco del registro de transacciones para operaciones de índiceTransaction Log Disk Space for Index Operations

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Las operaciones de índice a gran escala pueden generar cargas grandes de datos que podrían llenar rápidamente el registro de transacciones.Large-scale index operations can generate large data loads that can cause the transaction log to fill quickly. Para estar seguros de que la operación de índice se pueda revertir, el registro de transacciones no se puede truncar hasta que se haya completado la operación de índice; no obstante, se puede realizar una copia de seguridad del registro durante la operación de índice.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. Por lo tanto, el registro de transacciones debe tener suficiente espacio para almacenar las transacciones de la operación de índice y cualquier transacción de usuario simultánea durante la operación de índice.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. Esto se cumple para las operaciones de índice en línea y sin conexión.This is true for both offline and online index operations. Debido a que no es posible obtener acceso a las tablas subyacentes durante una operación de índice sin conexión, puede que haya pocas transacciones de usuario y el registro no crezca tan rápidamente.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. Las operaciones de índice en línea no impiden la actividad simultánea de usuarios, por lo tanto, las operaciones de índice en línea a gran escala junto con un número significativo de transacciones simultáneas pueden provocar el crecimiento continuo del registro de transacciones sin la posibilidad de truncar el registro.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.

RecomendacionesRecommendations

Cuando ejecute operaciones de índice a gran escala, tenga en cuentas las siguientes recomendaciones:When you run large-scale index operations, consider the following recommendations:

  1. Compruebe que se ha realizado una copia de seguridad del registro de transacciones y que éste se ha truncado antes de ejecutar operaciones de índice a gran escala en línea, así como que el registro dispone de espacio suficiente para almacenar el índice proyectado y las transacciones de usuario.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. Considere la posibilidad de establecer la opción SORT_IN_TEMPDB en ON para la operación de índice.Consider setting the SORT_IN_TEMPDB option to ON for the index operation. De este modo, se separan las transacciones de índice de transacciones de usuario simultáneas.This separates the index transactions from the concurrent user transactions. Las transacciones de índice se almacenarán en el registro de transacciones de tempdb y las transacciones de usuario simultáneas se almacenarán en el registro de transacciones de la base de datos de usuario.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. Esto permite que el registro de transacciones de la base de datos de usuario se trunque durante la operación de índice si es necesario.This allows for the transaction log of the user database to be truncated during the index operation if it is required. Además, si el registro de tempdb no se encuentra en el mismo disco que el registro de la base de datos de usuario, los dos registros no compiten por el mismo espacio en 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

    Compruebe que la base de datos tempdb y el registro de transacciones disponen de espacio suficiente para controlar la operación de índice.Verify that the tempdb database and transaction log have sufficient disk space to handle the index operation. El registro de transacciones de tempdb no se puede truncar hasta que finalice la operación de índice.The tempdb transaction log cannot be truncated until the index operation is completed.

  3. Utilice un modelo de recuperación de base de datos que permita el registro mínimo de la operación de índice.Use a database recovery model that allows for minimal logging of the index operation. Esto puede reducir el tamaño del registro e impide que el registro llene el espacio de registro.This may reduce the size of the log and prevent the log from filling the log space.

  4. No ejecute la operación de índice en línea en una transacción explícita.Do not run the online index operation in an explicit transaction. El registro no se truncará hasta que finalice la operación explícita.The log will not be truncated until the explicit transaction ends.

Requisitos de espacio en disco para operaciones DDL de índiceDisk Space Requirements for Index DDL Operations

Ejemplo de espacio en disco del índiceIndex Disk Space Example