Вставка в базу данных SQL Azure очень медленная - PullRequest
0 голосов
/ 31 мая 2018

Я использую Microsoft Sync-Framework 2.1 для базы данных SQL Azure.Таблица, которую я готовлю для синхронизации, содержит около 1 млн записей.При создании области синхронизации среда синхронизации создает таблицу отслеживания XXX с одной строкой на исходную запись.Создание этой таблицы очень медленно на лазурной.Выполняемый запрос выглядит следующим образом:

INSERT INTO [Transactions_tracking] 
([Id], [create_scope_local_id], [local_create_peer_key], [local_create_peer_timestamp], [update_scope_local_id], [local_update_peer_key]
, [sync_row_is_tombstone], [PointOfSaleId], [ExecutedTime]) 
SELECT [base].[Id], NULL, 0, @@DBTS+1, NULL, 0, 0, [base].[PointOfSaleId], [base].[ExecutedTime] 
FROM [Transactions] [base] LEFT OUTER JOIN [Transactions_tracking] [side] ON [base].[Id] = [side].[Id] WHERE [side].[Id] IS NULL; 

В SQL Express это занимает 19 с , в то время как в Azure с 50 DTU это занимает 619 с , что я действительноне могу объяснить.

Есть идеи?Спасибо Тревис

1 Ответ

0 голосов
/ 31 мая 2018

Возможно, что процесс массовой загрузки выходит за пределы DTU и происходит дросселирование.Премиальные уровни предназначены для интенсивных рабочих нагрузок ввода-вывода, вы можете масштабироваться до премиальных уровней перед запуском этих типов нагрузок и уменьшаться до исходного уровня, когда эти рабочие нагрузки больше не существуют.

Примером того, как уровни Premium обеспечивают лучшую производительность для операций ввода-вывода и транзакций, может быть сравнение Standard S1 с Premium P2.Стандартный S1 имеет ограничение на вставку 1,4 МБ в минуту, тогда как Premium P2 имеет ограничение на вставку 13,5 МБ в минуту.

Иногда вы можете ограничить свой собственный процесс, используя операторы "wait for delay", ноэто только в том случае, если проблема заключается в том, что ваши вставки идут пакетами, которые временно превышают пределы DTU.Если данные превышают пределы DTU для часов за раз, вам просто нужно больше DTU.

Документация Azure здесь говорит о важности использования пакетной обработки для улучшения производительности вставки.

...