У меня есть sql-server 2005 на 32-битном (3,5 ГБ ОЗУ) 4-х процессорном сервере win2003 с дисковым массивом RAID 5, который работает на 1/10 виртуального 2008-SQL-Server Win2008 32-битный 2 ГБ RAM Raid 5 Сервер.
Задача состоит в том, чтобы удалить 8,5 млн записей из одной таблицы одной базы данных. Через 6 часов виртуальный сервер как тестовая среда завершил свою работу. В то же время производительный сервер сделал почти 1 млн удалений. Что не так с тем настоящим сервером win2003?
где смотреть, какие параметры правят по делу?
Мир
Ледяной
PS: сравнивать эти системы несправедливо?
Скорее всего, у производственного сервера есть другие запросы для обслуживания, поэтому он должен делиться ресурсами и ждать блокировок.
Это предложение о stackoverflow должен решить вашу проблему просто отлично.
Взгляните на планы выполнения оператора удаления на обеих машинах и посмотрите, чем они отличаются; убедитесь, что статистика обновлена.
Я бы не подумал, что разница в производительности будет настолько плохой, но все зависит от обстоятельств. Я тестировал 7-кратное увеличение производительности приложений при переходе с 03 / sql05 на 08 / sql08 на том же оборудовании. Вы можете попробовать изменить параллелизм на 1 на сервере 905. Я видел, как при этом улучшались плохо подсказанные запросы. Кроме того, проверьте, какой у каждого ОЗУ, есть ли какие-либо другие операции ввода-вывода диска и какой тип процессора. Помните, что процессор Nehalem с частотой 2,4 ГГц может сделать процесс merom 3,2 ГГц таким, как будто он работает на половинной скорости.