SQL Server блокирует таблицу при вставке, предотвращая множественные параллельные вставки
Я пытаюсь вставить в целевую таблицу несколько исходных таблиц параллельно, чтобы ускорить процесс. Исходные таблицы содержат более 5 миллионов записей.
У меня нет индексов, столбцов идентификаторов или чего-либо определенного в таблице.
create table target(col1 varchar(255), col2 varchar(255),col3 varchar(255))
Процесс 1:
insert into target (col1, col2, col3) as select t1_1, t1_2, current_timestamp from table1;
Процесс2:
insert into target (col1, col2, col3) as select t2_1, t2_2, current_timestamp from table2;
Процесс 3:
insert into target (col1, col2, col3) as select t3_1, t3_2, current_timestamp from table3;
Я ожидал, что вставки будут работать параллельно.
Первый процесс работает, но другие не удалось. Но я продолжаю получать следующую ошибку:
1204, b'Экземпляр компонента SQL Server Database Engine в настоящее время не может получить ресурс LOCK. Повторите ваше заявление, когда активных пользователей станет меньше. Попросите администратора базы данных проверить блокировку и конфигурацию памяти для этого экземпляра или проверить наличие длительных транзакций. Сообщение об ошибке DB-Lib 20018, уровень серьезности 19: \ nОбщая ошибка SQL Server: проверка сообщений от SQL Server \ n '
Позволяет ли SQL Server нескольким параллельным процессам вставлять большие объемы данных для параллельной вставки? Если так, как я могу предотвратить эти блокировки?