Мы столкнулись с аналогичной проблемой, упомянутой в Azure hits database cpu limits too easily. Мы также используем пул Azure Elastic и создаем новую базу данных для каждого клиента. Мы используем сначала EF6-код для обработки SQL-данных.Производительность Лазерные базы данных упругих пулов
Используя веб-интерфейс, пользователь может создать клиента. Они делают это несколько раз в неделю, а иногда (не всегда, но обязательно в неделю) база данных создается только частично, и мы получаем ошибки Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement
. Когда мы удаляем этот клиент/db и создаем снова, он отлично работает. Конечно, это очень раздражает. Теперь мы работаем над тем, чтобы поймать эту ошибку, удалить db и перезапустить создание в коде. У кого-нибудь есть похожий опыт и, надеюсь, лучшее решение?
Также создание базы данных занимает много времени: 3-5 минут. У нас только 18 таблиц на базу данных. Можем ли мы ускорить это?
Следующим шагом в рабочем процессе является анализ XML-файлов, которые пользователь загрузил. Мы используем EF6 для заполнения нашей модели и сохранения ее в базе данных. Это очень медленно. XML-файл содержит данные сотрудника, которые необходимо заполнить в нескольких таблицах (около 15 таблиц). Например, у нас есть XML-файл размером 9,7 МБ, содержащий 4416 сотрудников, а шаг «.save()» занимает около 12 минут. Принимая во внимание, что клиент имеет около 25 XML-файлов каждый год, а пользователь при загрузке через 5 лет это сохранение занимает слишком много времени.
Мы уже рассмотрели код и с границами EF6, мы не думаем, что можем оптимизировать его больше. Теперь мы смотрим на конфигурацию нашей подписки Azure, но документация пугает, и мы не можем понять, что изменить, чтобы получить лучшую производительность.
Любое руководство очень ценится.