Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В базе данных, использующей модель полного восстановления, все операции вставки строк, выполняющиеся при массовом импорте, полностью записываются в журнал транзакций. Если используется модель полного восстановления, импорт большого количества данных может привести к быстрому заполнению журнала транзакций. Напротив, в простой модели восстановления или модели восстановления с массовым протоколированием минимальное журналирование операций массового импорта снижает вероятность того, что операция массового импорта исчерпает пространство журнала. Минимальное протоколирование также более эффективно, чем полное.
Примечание.
Модель восстановления с неполным протоколированием предназначена для временной замены модели полного восстановления на период проведения массовых операций.
Требования к таблицам для операций массового импорта с минимальным ведением журнала
Минимальное протоколирование требует, чтобы целевая таблица удовлетворяла следующим условиям.
Таблица не реплицируется.
Задана блокировка таблицы (с помощью
TABLOCK).Примечание.
Хотя вставки данных не регистрируются в журнале транзакций во время минимальной операции массового импорта, ядро СУБД по-прежнему регистрирует выделения экстентов при каждом выделении новой экстенты в таблицу.
Таблица не оптимизирована для памяти.
Можно ли использовать минимальное протоколирование, также зависит от того, индексируется ли таблица и, если это так, пуста ли она.
Если у таблицы нет индексов, ведется минимальный журнал страниц данных.
Если у таблицы нет кластеризованного индекса, но есть один или более некластеризованных индексов, всегда ведется минимальный журнал страниц данных. Однако применяемый способ ведения журнала страниц индекса зависит от того, пуста ли таблица.
Если таблица пуста, страницы индекса журналируются по минимуму. Если начать с пустой таблицы и выполнить массовый импорт данных несколькими пакетами, для первого пакета будет вестись минимальный журнал страниц как данных, так и индекса, но, начиная со второго пакета, минимальный журнал будет вестись только для страниц данных.
Если таблица не пуста, страницы индекса полностью записываются в журнал.
Если один из индексов содержит
IGNORE_DUP_KEY = ON, страницы индекса и данных полностью протоколируются.
Если у таблицы есть кластеризованный индекс и таблица пуста, для страниц данных и страниц индекса применяется минимальное журналирование. В отличие от этого, если таблица имеет кластеризованный индекс на основе дерева B и непуста, страницы данных и страницы индексов полностью регистрируются независимо от модели восстановления. Если вы начинаете с пустой таблицы rowstore и массово импортируете данные пакетами, то для первого пакета и страницы индекса, и страницы данных протоколируются в минимальном объёме, а начиная со второго пакета как массовая операция протоколируются только страницы данных.
Примечание.
В документации термин B-tree обычно используется в ссылке на индексы. В индексах rowstore ядро СУБД реализует дерево B+. Это не относится к индексам columnstore или индексам в таблицах, оптимизированных для памяти. Дополнительные сведения см. в руководстве по архитектуре и проектированию индексов SQL Sql Server и Azure.
Сведения о журналировании для кластеризованного индекса columnstore (CCI) см. в разделе Руководство по загрузке данных в индексы columnstore.
Примечание.
Если включена репликация транзакций, BULK INSERT операции полностью регистрируются даже в модели массового восстановления.
Связанные задачи
- Модели восстановления (SQL Server)
- Утилита bcp
- BULK INSERT (Transact-SQL)
- OPENROWSET (Transact-SQL)
- BACKUP (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- Табличные подсказки (Transact-SQL)
- INSERT (Transact-SQL)