Имейте некоторые задачи сегментации сотрудников, которые приводят к большому количеству записей (около 2000), которые необходимо вставить в SQL Azure. Сами записи очень маленькие около 4 целых чисел. Роль рабочего Azure выполняет задачу сегментации и вставляет результирующие строки в таблицу SQL Azure. В очереди может быть несколько таких задач (каждая из которых содержит порядка 1000-2000 строк), и поэтому каждая из этих вставок должна выполняться довольно быстро.
Сроки тестирования с использованием локальной машины на SQL Azure занимали значительное время (приблизительно 2 минуты для 1000 вставок). Это может быть вызвано латентностью сети. Я предполагаю, что вставки из рабочей роли должны быть намного быстрее.
Однако, поскольку инфраструктура сущности не вставляет вставки правильно, мы думали об использовании SQLBulkCopy. Будет ли использование SQLBulkcopy привести к тому, что запросы будут дросселированы, если размер партии составляет 1000? Есть ли рекомендуемый подход?
API Bulk Copy должен отлично служить в ваших целях и приводить к очень резким улучшениям производительности.
Я тестировал вставку 10 миллионов записей с размером партии 2000 в базу данных Azure, и никакое дросселирование не происходило с производительностью ~ 10 секунд на партию при работе с моей локальной машины.