Мы используем Devops для воссоздания нашей демо-среды. В рамках развертывания Devops у нас есть задача Azure Powershell, чтобы скопировать нашу производственную базу данных SQL Azure в «демонстрационную» базу данных на том же сервере, на котором расположена база данных prod.
Сначала мы ищем базы данных на сервере иесли база данных "demo" существует, мы ее удаляем:
Remove-AzSqlDatabase -ResourceGroupName prdResource -ServerName prdServer -DatabaseName demoDb
Затем мы копируем базу данных prod в базу данных demo:
New-AzSqlDatabaseCopy -ResourceGroupName prdResource -ServerName prdServer -DatabaseName prodDb -CopyDatabaseName demoDb
Наконец, мы устанавливаем уровень обслуживания для demoDb:
Set-AzSqlDatabase -ResourceGroupName prdResource -ServerName prdServer -DatabaseName demoDb -Edition "Standard" -RequestedServiceObjectiveName "S4"
Все это прекрасно работает, и демонстрационная база данных создается правильно с соответствующим уровнем обслуживания. Проблема заключается в том, что наше веб-приложение Azure Prod, подключенное к базе данных Prod, борется с проблемами производительности. Вызовы, которые раньше занимали ~ 2 секунды непосредственно перед копированием дБ, теперь занимают более 30 секунд. Мы обнаружили, что перезапускаем веб-приложение, которое устраняет проблему.
Просто интересно, почему команда copy db влияет на нашу производительность в веб-приложении? Есть ли другие настройки, которые мы должны использовать с командой copy? Мы запустили этот процесс несколько раз и каждый раз сталкивались с одними и теми же проблемами с производительностью.
Насколько мы понимаем, этот процесс не должен иметь каких-либо негативных побочных эффектов на prod db, это правильное предположение? Любые другие способы решения проблемы без перезапуска webApp?