Prerequisiti per la registrazione minima nell'importazione in blocco
Si applica a: SQL Server
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. 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. 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 in blocco riduce la possibilità che un'operazione di questo tipo esaurisca lo spazio nel log. La registrazione minima inoltre è più efficiente di quella completa.
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.
Requisiti della tabella per la registrazione minima di operazioni di importazione in blocco
La registrazione minima richiede che la tabella di destinazione soddisfi le condizioni seguenti:
La tabella di destinazione non viene replicata.
Il blocco di tabella è specificato (utilizzando TABLOID).
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 database vengono registrate le allocazioni degli extent per ogni nuovo extent allocato alla tabella.
Questa non è una tabella ottimizzata per la memoria.
La registrazione minima in una tabella dipende inoltre dal fatto che la tabella sia indicizzata e, in tal caso, dal fatto che sia vuota:
Se la tabella non include indici, le pagine di dati vengono registrate tramite registrazione minima.
Se la tabella non include indici cluster ma uno o più indici non cluster, le pagine di dati vengono sempre registrate con registrazione minima. La modalità di registrazione delle pagine di indice, tuttavia, dipende dal fatto che la tabella sia o meno vuota:
Se la tabella è vuota, le pagine di indice vengono registrate tramite registrazione minima. 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.
Se la tabella non è vuota, le pagine di indice vengono registrate tramite registrazione completa.
Se uno degli indici ha IGNORE_DUP_KEY = ON, le pagine di indice e di dati vengono registrate completamente.
Se la tabella include un indice cluster ed è vuota, le pagine di dati e di indice vengono registrate tramite registrazione minima. 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. Se si parte da una tabella rowstore vuota e si esegue l'importazione in blocco 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.
Nota
Nella documentazione viene usato in modo generico il termine albero B in riferimento agli indici. Negli indici rowstore, il motore di database implementa un albero B+. Ciò non si applica a indici columnstore o a indici in tabelle ottimizzate per la memoria. Per ulteriori informazioni, vedi Guida sulla progettazione e sull'architettura degli indici SQL Server e Azure SQL.
Per informazioni sulla registrazione per un indice columnstore cluster (CCI), vedere Istruzioni per il caricamento di dati dell'indice columnstore.
Nota
Quando la replica transazionale è abilitata, le operazioni BULK INSERT vengono registrate completamente persino nel modello di recupero con registrazione minima delle operazioni bulk.
Vedi anche
- Modelli di recupero (SQL Server)
- Utilità bcp
- BULK INSERT (Transact-SQL)
- OPENROWSET (Transact-SQL)
- BACKUP (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- Hint di tabella (Transact-SQL)
- INSERT (Transact-SQL)