Voraussetzungen für die minimale Protokollierung beim Massenimport

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. Bei umfangreichen Datenimporten kann das Transaktionsprotokoll schnell aufgefüllt werden, wenn das vollständige Wiederherstellungsmodell verwendet wird. 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. Darüber hinaus ist die minimale Protokollierung effizienter als die vollständige Protokollierung.

HinweisHinweis

Das massenprotokollierte Wiederherstellungsmodell wurde entwickelt, um das vollständige Wiederherstellungsmodell während umfangreicher Massenvorgänge vorübergehend zu ersetzen. Informationen zum Wechseln zwischen dem vollständigen und dem massenprotokollierten Wiederherstellungsmodell finden Sie unter Überlegungen für den Wechsel zwischen vollständigem und massenprotokolliertem Wiederherstellungsmodell.

Tabellenanforderungen für die minimale Protokollierung bei Massenimportvorgängen

Für die minimale Protokollierung muss die Zieltabelle die folgenden Bedingungen erfüllen:

  • Die Tabelle wird nicht repliziert.

  • Eine Tabellensperre ist angegeben (mit TABLOCK).

    Weitere Informationen finden Sie unter Steuern des Sperrverhaltens für den Massenimport.

    HinweisHinweis

    Obwohl Dateneinfügungen bei einem minimal protokollierten Massenimportvorgang nicht im Transaktionsprotokoll protokolliert werden, protokolliert Database Engine (Datenbankmodul) dennoch Blockzuordnungen, wenn der Tabelle ein neuer Block zugeordnet wird.

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:

  • Wenn die Tabelle keine Indizes besitzt, werden die Datenseiten minimal protokolliert.

  • Falls die Tabelle keinen gruppierten Index, aber mindestens einen nicht gruppierten Index aufweist, werden die Datenseite immer minimal protokolliert. Wie Indexseiten protokolliert werden, hängt jedoch davon ab, ob die Tabelle leer ist:

    • Falls die Tabelle leer ist, werden Indexseiten minimal protokolliert.

    • Falls die Tabelle nicht leer ist, werden Indexseiten vollständig protokolliert.

      HinweisHinweis

      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.

  • Falls die Tabelle einen gruppierten Index aufweist und leer ist, werden Daten- und Indexseiten minimal protokolliert. Wenn dagegen eine Tabelle einen gruppierten Index aufweist und nicht leer ist, werden Daten- und Indexseiten unabhängig vom Wiederherstellungsmodell vollständig protokolliert.

    HinweisHinweis

    Wenn Sie mit einer leeren 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 jedoch werden nur Datenseiten massenprotokolliert.

Weitere Informationen, einschließlich einer Zusammenfassung des Sperr- und Protokollierungsverhaltens von Tabellen während des Massenimportierens, finden Sie unter Optimieren der Leistung des Massenimportierens.

Bewährte Methode Wenn Sie die massenprotokollierte Wiederherstellung zum Importieren vieler Tabellenzeilen verwenden, sollten Sie Massenimporte auf mehrere Batches verteilen. Jeder Batch entspricht einer Transaktion. Wenn ein Batch abgeschlossen ist, kann das zugehörige Protokoll gesichert werden. Die nächste Protokollsicherung gibt dann den Protokollspeicherplatz frei, der für den Massenimport dieses Zeilenbatches verwendet wird.