Предварительные условия для минимального ведения журнала массового импорта данных

В базе данных, использующей модель полного восстановления, все операции вставки строк, выполняющиеся при массовом импорте, полностью записываются в журнал транзакций. Если используется модель полного восстановления, импорт большого количества данных может привести к быстрому заполнению журнала транзакций. При использовании простой модели восстановления или модели восстановления с неполным протоколированием минимальное протоколирование операций массового импорта, напротив, снижает вероятность того, что операция массового импорта заполнит все пространство журнала. Минимальное ведение журнала также более эффективно, чем полное.

ПримечаниеПримечание

Модель восстановления с неполным протоколированием предназначена для временной замены модели полного восстановления на период проведения массовых операций.

Требования к таблицам для минимального протоколирования операций массового импорта

Минимальное протоколирование требует, чтобы целевая таблица удовлетворяла следующим условиям.

  • В данный момент таблица не реплицируется.

  • Задана блокировка таблицы (с помощью TABLOCK).

    ПримечаниеПримечание

    Хотя операции вставки данных при минимальном ведении журнала операций массового импорта не регистрируются в журнале транзакций, компонент Компонент Database Engine по-прежнему ведет журнал выделения всех экстентов для таблицы.

Можно ли использовать минимальное ведение журнала, также зависит от того, индексируется ли таблица и, если это так, пуста ли она.

  • Если у таблицы нет индексов, ведется минимальный журнал страниц данных.

  • Если у таблицы нет кластеризованного индекса, но есть один или более некластеризованных индексов, всегда ведется минимальный журнал страниц данных. Однако применяемый способ ведения журнала страниц индекса зависит от того, пуста ли таблица.

    • Если таблица пуста, ведется минимальный журнал страниц индекса.

    • Если таблица не пуста, ведется полный журнал страниц индекса.

      ПримечаниеПримечание

      Если начать с пустой таблицы и выполнить массовый импорт данных несколькими пакетами, для первого пакета будет вестись минимальный журнал страниц как данных, так и индекса, но, начиная со второго пакета, минимальный журнал будет вестись только для страниц данных.

  • Если у таблицы есть кластеризованный индекс, и он пуст, будет вестись минимальный журнал и страниц данных, и страниц индекса. И наоборот, если у таблицы есть непустой кластеризованный индекс, будет вестись полный журнал и страниц данных, и страниц индекса независимо от модели восстановления.

    ПримечаниеПримечание

    Если начать с пустой таблицы и выполнить массовый импорт данных несколькими пакетами, для первого пакета будет вестись минимальный журнал и страниц данных, и страниц индекса, но, начиная со второго пакета, неполный журнал будет вестись только для страниц данных.

ПримечаниеПримечание

Если включена репликация транзакций, операции BULK INSERT полностью протоколируются даже в модели с неполным протоколированием.

Связанные задачи

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

Программа bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

BACKUP (Transact-SQL)

ALTER DATABASE (Transact-SQL)

Табличные указания (Transact-SQL)

Инструкция INSERT (Transact-SQL)

Основные понятия

Модели восстановления (SQL Server)