MSSQL: bulk insert и merge
От: Андрей Россия  
Дата: 24.04.14 11:29
Оценка:
Всем доброго времени суток.

Есть проблема с производительностью сабжа.

Делаю bulk insert (примерно 3,5 млн строк) во временную таблицу.
Потом мержу ее с основной таблицей (тоже примерно 3,5 млн строк).
insert выполняется быстро, а вот merge — тормозит.
Причем бОльшую часть времени он находится в состоянии SUSPENDED c типом ожидания PAGEIOLATCH_EX.

Что мне непонятно: если я все то же самое проделываю через SSMS — все работает быстро. merge не висит в ожидании.
Разница только в том, что временную таблицу я просто заполняю из другой (без использования bulk insert).

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

Куда копать? В чем может быть причина тормозов?
Планы запросов практически одинаковые в обоих случаях.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.