Управление блокировкой при массовом импорте

Изменения: 5 декабря 2005 г.

Команды bcp и инструкции BULK INSERT и INSERT ... SELECT * FROM OPENROWSET(BULK...) позволяют указать, что на время выполнения операции массового импорта таблица будет блокирована.

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

Если не указана блокировка таблицы, по умолчанию используются блокировки на уровне строк, если параметр table lock on bulk load не установлен в значение on. Установка параметра table lock on bulk load хранимой процедурой sp_tableoption включает режим табличной блокировки при выполнении массового импорта.

Блокировка таблицы при массовом импорте Режим блокировки таблицы

OFF

Используется блокировка на уровне строк

ON

Используется блокировка таблицы

Если указана блокировка таблицы, значение по умолчанию, указанное в sp_tableoption, переопределяется на время выполнения операции массового импорта.

ms180876.note(ru-ru,SQL.90).gifПримечание.
Нет необходимости применять блокировку таблиц, если данные в нее массовым импортом параллельно загружают несколько клиентов, но такой подход может повысить производительность.

Квалификаторы команд

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

Команда Квалификатор Тип квалификатора

bcp

-h"TABLOCK"

Подсказка

BULK INSERT

TABLOCK

Аргумент

INSERT ... SELECT * FROM OPENROWSET(BULK...)

WITH(TABLOCK)

Табличная подсказка

ms180876.note(ru-ru,SQL.90).gifПримечание.
В SQL Server 2005, если для таблицы с кластеризованным индексом указана подсказка TABLOCK, параллельное выполнение массового импорта данных будет запрещено. Если в этом случае необходимо параллельное выполнение массового импорта, не указывайте подсказку TABLOCK. Дополнительные сведения о параллельном выполнении массовой загрузки см. в разделе Рекомендации по оптимизации массового импорта данных.

См. также

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

Блокировка в компоненте Database Engine

Другие ресурсы

Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
sp_tableoption (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005