Мы использовали выделенный сервер (один четырехъядерный, 6 ГБ ОЗУ) и переходим на новый выделенный сервер (2 шестиядерных ядра, 32 ГБ ОЗУ). Оба - Windows Server 2008, SQL Server 2008 R2. Производительность на новом сервере немного хуже, чем на старом, более медленном сервере.
При тестировании наше приложение ASP.NET работает на 10–20% медленнее. Выполнение отдельных дорогостоящих запросов с использованием функций STATISTICS IO и STATISTICS TIME показывает на 10-20% больше времени на новом сервере. Профиль запроса SQL показывает более высокую загрузку ЦП при выполнении дорогостоящих запросов.
Диспетчер задач на новом сервере показывает, что sqlserver.exe использует 22 ГБ ОЗУ, но значения ЦП всегда остаются очень низкими.
Я обновил всю статистику, перестроил или реорганизовал индексы и т. Д. Планы выполнения на этом этапе должны храниться на новом сервере, учитывая объем проведенных мной тестов. Если есть какие-либо отсутствующие индексы (я не думаю, что они есть), они одинаково влияют на старый и новый серверы. Новое имеет восстановленную резервную копию тех же данных на старом.
Я ожидал, что производительность на новом сервере будет лучше, но большее беспокойство вызывает нагрузка. Если старый сервер работает лучше даже под нагрузкой, то что произойдет, когда этот новый, немного худший сервер должен будет принять эту нагрузку?
Что еще я мог здесь упустить?