Prerequisiti per la registrazione minima nell'importazione bulkPrerequisites for Minimal Logging in Bulk Import

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per un database con modello di recupero con registrazione completa, tutte le operazioni di inserimento di righe eseguite durante l'importazione bulk vengono registrate in modo completo nel log delle transazioni.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. In caso di importazioni di grandi quantità di dati, l'utilizzo del modello di recupero con registrazione completa può causare un rapido esaurimento dello spazio disponibile nel log.Large data imports can cause the transaction log to fill rapidly if the full recovery model is used. Nel caso si utilizzi un modello di recupero con registrazione minima o un modello di recupero con registrazione minima delle operazioni bulk invece, la registrazione minima delle operazioni di importazione bulk riduce la possibilità che un'operazione di questo tipo esaurisca lo spazio nel log.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. La registrazione minima inoltre è più efficiente di quella completa.Minimal logging is also more efficient than full logging.

Nota

Il modello di recupero con registrazione minima delle operazioni bulk è progettato per sostituire temporaneamente il modello di recupero con registrazione completa durante le operazioni bulk di notevoli dimensioni.The bulk-logged recovery model is designed to temporarily replace the full recovery model during large bulk operations.

Requisiti della tabella per la registrazione minima di operazioni di importazione bulkTable Requirements for Minimally Logging Bulk-Import Operations

La registrazione minima richiede che la tabella di destinazione soddisfi le condizioni seguenti:Minimal logging requires that the target table meets the following conditions:

  • La tabella di destinazione non viene replicata.The table is not being replicated.

  • Il blocco di tabella è specificato (utilizzando TABLOID).Table locking is specified (using TABLOCK). Per la tabella con indice columnstore di cluster, non è necessaria l'opzione TABLOCK per la registrazione minima.For table with clustered columnstore index, you don't need TABLOCK for minimal logging. Inoltre, viene eseguita la registrazione minima solo del caricamento dei dati in gruppi di righe compressi, che richiede una proprietà batchsize pari a 102400 o superiori.Additionally, only the data load into compressed rowgroups are minimally logged requiring a batchsize of 102400 or higher.

    Nota

    Sebbene gli inserimenti di dati non vengano registrati nel log delle transazioni quando viene eseguita un'importazione bulk con registrazione minima, nel Motore di databaseDatabase Engine vengono registrate le allocazioni degli extent per ogni nuovo extent allocato alla tabella.Although data insertions are not logged in the transaction log during a minimally logged bulk-import operation, the Motore di databaseDatabase Engine still logs extent allocations each time a new extent is allocated to the table.

  • Questa non è una tabella con ottimizzazione per la memoria.Table is not a memory-optimized table.

    La registrazione minima in una tabella dipende inoltre dal fatto che la tabella sia indicizzata e, in tal caso, dal fatto che sia vuota:Whether minimal logging can occur for a table also depends on whether the table is indexed and, if so, whether the table is empty:

  • Se la tabella non include indici, le pagine di dati vengono registrate tramite registrazione minima.If the table has no indexes, data pages are minimally logged.

  • Se la tabella non include indici cluster ma uno o più indici non cluster, le pagine di dati vengono sempre registrate con registrazione minima.If the table has no clustered index but has one or more nonclustered indexes, data pages are always minimally logged. La modalità di registrazione delle pagine di indice, tuttavia, dipende dal fatto che la tabella sia o meno vuota:How index pages are logged, however, depends on whether the table is empty:

    • Se la tabella è vuota, le pagine di indice vengono registrate tramite registrazione minima.If the table is empty, index pages are minimally logged.

    • Se la tabella non è vuota, le pagine di indice vengono registrate tramite registrazione completa.If table is non-empty, index pages are fully logged.

      Nota

      Se si parte da una tabella vuota e si esegue l'importazione bulk dei dati in più batch, per il primo batch le pagine di indice e di dati vengono registrate con registrazione minima. A partire dal secondo batch, tuttavia, la registrazione minima viene applicata solo alle pagine di dati.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.

  • Se la tabella include un indice cluster ed è vuota, le pagine di dati e di indice vengono registrate tramite registrazione minima.If the table has a clustered index and is empty, both data and index pages are minimally logged. Se, invece, una tabella include un indice cluster basato sull'albero B e non è vuota, le pagine di dati e di indice vengono registrate con registrazione completa indipendentemente dal modello di recupero.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. Per le tabelle con indice columnstore di cluster, viene sempre eseguita la registrazione minima del caricamento dei dati nel gruppo di righe compresso indipendentemente dal fatto che la tabella sia vuota o no quando la proprietà batchsize > = 102400.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

    Se si parte da una tabella rowstore vuota e si esegue l'importazione bulk dei dati in batch, per il primo batch le pagine di indice e di dati vengono registrate con registrazione minima. A partire dal secondo batch, tuttavia, la registrazione minima viene applicata solo alle pagine di dati.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

Quando la replica transazionale è abilitata, le operazioni BULK INSERT vengono registrate completamente persino nel modello di recupero con registrazione minima delle operazioni bulk.When transactional replication is enabled, BULK INSERT operations are fully logged even under the Bulk Logged recovery model.

Vedere ancheSee Also

Modelli di recupero (SQL Server) Recovery Models (SQL Server)
Utilità bcp 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)
Hint di tabella (Transact-SQL) Table Hints (Transact-SQL)
INSERT (Transact-SQL) INSERT (Transact-SQL)