Вероятно, это и есть открытый запрос.
Нет информации о количестве строк, нет статистики, ничего нет, поэтому SQL Server будет просто буферизовать результаты, чтобы позволить ему оценивать более поздние биты, которые я подозреваю. Это основная идея.
Я бы предложил разделить создание и заполнение newtab.
Кстати, перемотка - это не откат. Перемотка не имеет ничего общего с безопасностью транзакции. Это SQL Server, ожидающий повторного использования строк. Что правильно, потому что openquery - это черный ящик.
Посмотрите в нижней части этой простой статьи Talk для перемоток. У вас есть «Удаленный запрос».
Редактировать
Исходя из того, что я нашел только на прошлой неделе, посмотрите на sp_tableoption .
При использовании с OPENROWSET навалом
поставщик набора строк для импорта данных в
таблица без индексов, TABLOCK позволяет
несколько клиентов для одновременной загрузки
данные в таблицу назначения с
оптимизированная регистрация и блокировка
Попробуйте TABLOCK на своем заполнении. Мы развлеклись с разработчиком клиента, использующим .net SQLBulkCopy, который дал очень плохую производительность.
Также это от, Кален Делани
Это не интуитивно понятно.