Я установил две базы данных SQL в Azure с гео-репликацией.Основной находится в Бразилии, а второй в Западной Европе.Точно так же у меня есть два веб-приложения, работающие на одном веб-API.Бразильское веб-приложение, которое читает и пишет в бразильской БД, и европейское веб-приложение, которое читает в европейской БД и пишет в бразильской БД.
Когда я проверяю время ответа на запросы только для чтения с почтальоном из ЕвропыЯ впервые заметил, что при первом «холодном» звонке европейское веб-приложение в два раза быстрее бразильского.Однако время немедленного ответа на следующие вызовы в веб-приложении Bazilian составляет 10% от первоначального «холодного» вызова, тогда как время ответа в европейском веб-приложении остается неизменным.Я также заметил, что после нескольких минут бездействия результаты возвращаются к «холодному» случаю.
Итак:
- Почему в Бразилии время ответа на запрос уменьшается?
- каков бы ни был ответ на вопрос 1, почему это не происходит в Европе?
- почему оптимизация времени отклика, происходящая в 1, не длится после нескольких минут бездействия?
Обратите внимание, что веб-приложения и БД создаются как копирование / вставка (кроме гео-репликации) друг в друга в json-файле Azure ARM.Оба веб-приложения alwaysOn
.
Спасибо.
ОБНОВЛЕНИЕ
На самом деле в том, что я вижу как конечный пользователь, есть несколько частей в действии.Веб-приложения и базы данных.Я написал этот вопрос, думая, что проблема связана с базой данных и гео-репликацией, однако, после попытки сценария @ Alberto (см. Ниже), я не смог «увидеть какие-либо различия в wait_times при запросе Бразилии или Европы, поэтомупроблема может быть в веб-приложениях.Я не знаю, как дальше анализировать / тестировать это.
ОБНОВЛЕНИЕ 2
Это может быть (или не) связано с хранилищем запросов.Я задал новый более конкретный вопрос на эту тему.
ОБНОВЛЕНИЕ 3
Запросы к вторичной базе данных не медленнее.Мой вопрос был поднят на ложные выводы.Я не буду удалять его, поскольку другим потребовалось время, чтобы ответить на него, и я благодарю их.
Я сравнивал время отклика запросов через оставшиеся вызовы с веб-API, выполняющим запросы EF на БД SQL Server.Поскольку остальные вызовы веб-API, расположенного в регионе, запрашивающего реплику базы данных, медленнее, чем остальные вызовы того же веб-API, развернутого в другом регионе и предназначенного для основной базы данных, я пришел к выводу, что проблема была на стороне базы данных.Тем не менее, когда я запускаю запросы в SSMS напрямую, минуя веб-API, я почти не вижу различий во времени отклика между первичной базой данных и базой данных реплики.
У меня все еще есть проблема, но не та, которая была поднята в этом вопросе.