Requisitos previos para el registro mínimo durante la importación masivaPrerequisites for Minimal Logging in Bulk Import

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

En el caso de las bases de datos que utilizan el modelo de recuperación completa, todas las operaciones de inserción de filas que se efectúan durante la importación masiva se registran por completo en el registro de transacciones.For a database under the full recovery model, all row-insert operations that are performed by bulk import are fully logged in the transaction log. Las importaciones de datos de gran volumen pueden hacer que el registro de transacciones se llene rápidamente si se utiliza el modelo de recuperación completa.Large data imports can cause the transaction log to fill rapidly if the full recovery model is used. En cambio, bajo el modelo de recuperación simple o el modelo de recuperación optimizado para cargas masivas de registros, el registro mínimo de operaciones de importaciones masivas reduce la posibilidad de que una de estas operaciones acabe con el espacio del registro.In contrast, under the simple recovery model or bulk-logged recovery model, minimal logging of bulk-import operations reduces the possibility that a bulk-import operation will fill the log space. Además, el registro mínimo es más eficaz que el completo.Minimal logging is also more efficient than full logging.

Nota

El modelo de recuperación optimizado para cargas masivas de registros está diseñado para reemplazar temporalmente al modelo de recuperación completa durante operaciones masivas de gran tamaño.The bulk-logged recovery model is designed to temporarily replace the full recovery model during large bulk operations.

Requisitos de las tablas para las operaciones de importación masiva de registro mínimoTable Requirements for Minimally Logging Bulk-Import Operations

El registro mínimo exige que la tabla de destino cumpla las condiciones siguientes:Minimal logging requires that the target table meets the following conditions:

  • La tabla no se está replicando.The table is not being replicated.

  • Se ha especificado el bloqueo de tabla (mediante TABLOCK).Table locking is specified (using TABLOCK). Para la tabla con índice de almacén de columnas en clúster, no necesita TABLOCK para el registro mínimo.For table with clustered columnstore index, you don't need TABLOCK for minimal logging. Además, solo se crean registros mínimos de los datos cargados en grupos de filas comprimidos, para lo que se requiere un tamaño de lote de 102 400 o más.Additionally, only the data load into compressed rowgroups are minimally logged requiring a batchsize of 102400 or higher.

    Nota

    Aunque no se registren las inserciones de datos en el registro de transacciones cuando se realiza una importación masiva de registro mínimo, el Motor de base de datosDatabase Engine seguirá registrando las asignaciones de extensiones cada vez que se asigne una nueva a la tabla.Although data insertions are not logged in the transaction log during a minimally logged bulk-import operation, the Motor de base de datosDatabase Engine still logs extent allocations each time a new extent is allocated to the table.

  • La tabla no está optimizada para memoria.Table is not a memory-optimized table.

La posibilidad de utilizar el registro mínimo con una tabla también depende de si la tabla está indizada y, en este caso, de si está vacía:Whether minimal logging can occur for a table also depends on whether the table is indexed and, if so, whether the table is empty:

  • Si la tabla no tiene índices, el registro de las páginas de datos será mínimo.If the table has no indexes, data pages are minimally logged.

  • Si la tabla no tiene índice clúster sino uno o más índices no clúster, el registro de las páginas de datos siempre será mínimo.If the table has no clustered index but has one or more nonclustered indexes, data pages are always minimally logged. Sin embargo, el modo en que se registran las páginas de índice depende de si la tabla está vacía:How index pages are logged, however, depends on whether the table is empty:

    • Si la tabla está vacía, el registro de las páginas de índice será mínimo.If the table is empty, index pages are minimally logged.

    • Si la tabla no está vacía, el registro de las páginas de índice será completo.If table is non-empty, index pages are fully logged.

      Nota

      Si empieza con una tabla vacía y realiza una importación masiva de datos mediante varios lotes, el registro de las páginas de índice y de datos será mínimo para el primer lote pero, a partir del segundo lote, solo las páginas de datos se registrarán de forma mínima.If you start with an empty table and bulk import the data in multiple batches, both index and data pages are minimally logged for the first batch, but beginning with the second batch, only data pages are minimally logged.

  • Si la tabla tiene un índice clúster y está vacía, tanto las páginas de datos como de índice se registrarán de forma mínima.If the table has a clustered index and is empty, both data and index pages are minimally logged. En cambio, si la tabla tiene un índice en clúster basado en btree pero no está vacía, tanto las páginas de datos como las de índice se registrarán de forma completa, independientemente del modelo de recuperación utilizado.In contrast, if a table has a btree based clustered index and is non-empty, data pages and index pages are both fully logged regardless of the recovery model. Para las tablas con índices de almacén de columnas en clúster, los registros mínimos de los datos cargados en grupos de filas comprimidos siempre se realizan con independencia de que la tabla esté vacía o no cuando el tamaño es igual o superior a 102 400.For tables with clustered columnstore index, the dataload into compressed rowgroup is always minimally logged independent of the table being empty or not when batchsize >= 102400.

    Nota

    Si empieza con una tabla de almacén de filas vacía y realiza una importación masiva de datos mediante varios lotes, el registro de las páginas de índice y de datos será mínimo para el primer lote pero, a partir del segundo lote, solo las páginas de datos se registrarán de forma mínima.If you start with an empty table rowstore table and bulk import the data in batches, both index and data pages are minimally logged for the first batch, but from the second batch onwards, only data pages are bulk logged.

Nota

Cuando la replicación transaccional está habilitada, las operaciones BULK INSERT se registran por completo en el modelo de recuperación optimizado para cargas masivas de registros.When transactional replication is enabled, BULK INSERT operations are fully logged even under the Bulk Logged recovery model.

Tareas relacionadasRelated Tasks

Consulte tambiénSee Also

Modelos de recuperación (SQL Server) Recovery Models (SQL Server)
bcp (utilidad) bcp Utility
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Sugerencias de tabla (Transact-SQL) Table Hints (Transact-SQL)
INSERT (Transact-SQL)INSERT (Transact-SQL)