Voraussetzungen für die minimale Protokollierung beim MassenimportPrerequisites for Minimal Logging in Bulk Import

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Für eine Datenbank, bei der das vollständige Wiederherstellungsmodell verwendet wird, werden alle beim Massenimport ausgeführten Vorgänge für das Einfügen von Zeilen vollständig im Transaktionsprotokoll protokolliert.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. Bei umfangreichen Datenimporten kann das Transaktionsprotokoll schnell aufgefüllt werden, wenn das vollständige Wiederherstellungsmodell verwendet wird.Large data imports can cause the transaction log to fill rapidly if the full recovery model is used. Im Gegensatz dazu reduziert die minimale Protokollierung von Massenimportvorgängen beim einfachen Wiederherstellungsmodell oder beim massenprotokollierten Wiederherstellungsmodell die Gefahr eines Überlaufs des Protokollspeichers durch einen Massenimportvorgang.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. Darüber hinaus ist die minimale Protokollierung effizienter als die vollständige Protokollierung.Minimal logging is also more efficient than full logging.

Hinweis

Das massenprotokollierte Wiederherstellungsmodell wurde entwickelt, um das vollständige Wiederherstellungsmodell während umfangreicher Massenvorgänge vorübergehend zu ersetzen.The bulk-logged recovery model is designed to temporarily replace the full recovery model during large bulk operations.

Tabellenanforderungen für die minimale Protokollierung bei MassenimportvorgängenTable Requirements for Minimally Logging Bulk-Import Operations

Für die minimale Protokollierung muss die Zieltabelle die folgenden Bedingungen erfüllen:Minimal logging requires that the target table meets the following conditions:

  • Die Tabelle wird nicht repliziert.The table is not being replicated.

  • Eine Tabellensperre ist angegeben (mit TABLOCK).Table locking is specified (using TABLOCK).

    Hinweis

    Obwohl Dateneinfügungen bei einem minimal protokollierten Massenimportvorgang nicht im Transaktionsprotokoll protokolliert werden, protokolliert das Datenbank-EngineDatabase Engine dennoch Blockzuordnungen, wenn der Tabelle ein neuer Block zugeordnet wird.Although data insertions are not logged in the transaction log during a minimally logged bulk-import operation, the Datenbank-EngineDatabase Engine still logs extent allocations each time a new extent is allocated to the table.

  • Die Tabelle ist keine speicheroptimierte Tabelle.Table is not a memory-optimized table.

Ob die minimale Protokollierung für eine Tabelle möglich ist, hängt auch davon ab, ob die Tabelle indiziert ist und, falls dies der Fall ist, ob die Tabelle leer ist:Whether minimal logging can occur for a table also depends on whether the table is indexed and, if so, whether the table is empty:

  • Wenn die Tabelle keine Indizes besitzt, werden die Datenseiten minimal protokolliert.If the table has no indexes, data pages are minimally logged.

  • Falls die Tabelle keinen gruppierten Index, aber mindestens einen nicht gruppierten Index aufweist, werden die Datenseiten immer minimal protokolliert.If the table has no clustered index but has one or more nonclustered indexes, data pages are always minimally logged. Wie Indexseiten protokolliert werden, hängt jedoch davon ab, ob die Tabelle leer ist:How index pages are logged, however, depends on whether the table is empty:

    • Falls die Tabelle leer ist, werden Indexseiten minimal protokolliert.If the table is empty, index pages are minimally logged. Wenn Sie mit einer leeren Tabelle beginnen und die Daten in mehreren Batches massenimportieren, werden für den ersten Batch sowohl Index- als auch Datenseiten minimal protokolliert. Ab dem zweiten Batch jedoch werden nur Datenseiten minimal protokolliert.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.

    • Falls die Tabelle nicht leer ist, werden Indexseiten vollständig protokolliert.If table is non-empty, index pages are fully logged.

  • Falls die Tabelle einen gruppierten Index aufweist und leer ist, werden Daten- und Indexseiten minimal protokolliert.If the table has a clustered index and is empty, both data and index pages are minimally logged. Wenn dagegen eine Tabelle einen B-Baum-basierten gruppierten Index aufweist und nicht leer ist, werden Daten- und Indexseiten unabhängig vom Wiederherstellungsmodell vollständig protokolliert.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. Wenn Sie mit einer leeren Rowstore-Tabelle beginnen und die Daten in Batches massenimportieren, werden für den ersten Batch sowohl Index- als auch Datenseiten minimal protokolliert. Ab dem zweiten Batch werden jedoch nur Datenseiten massenprotokolliert.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.

  • Informationen zur Protokollierung für einen gruppierten Columnstore-Index finden Sie im Leitfaden zum Laden von Daten in einen Columnstore-Index.For information about logging for a clustered columnstore index (CCI), see Columnstore index data loading guidance.

Hinweis

Wenn die Transaktionsreplikation aktiviert ist, werden BULK INSERT-Vorgänge auch unter dem massenprotokollierten Wiederherstellungsmodell vollständig protokolliert.When transactional replication is enabled, BULK INSERT operations are fully logged even under the Bulk Logged recovery model.

Verwandte AufgabenRelated Tasks

Weitere InformationenSee Also

Wiederherstellungsmodelle (SQL Server) Recovery Models (SQL Server)
bcp (Hilfsprogramm) 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)
Tabellenhinweise (Transact-SQL) Table Hints (Transact-SQL)
INSERT (Transact-SQL)INSERT (Transact-SQL)