Во-первых, я не системный администратор, а просто программист, разочарованный низкой производительностью сервера ...
В настоящее время мы запускаем виртуальную машину (я полагаю, что это Win Server 2008) на более новом процессоре E5-2650, 24 ГБ ОЗУ, по крайней мере, согласно диалоговому окну «Свойства системы». Я не могу точно сказать, какие ресурсы есть у виртуальной машины SQL, потому что у меня есть доступ только к ней, а не к хосту. Извините, я не так хорошо разбираюсь в своем деле. Я также не хочу, чтобы наш нынешний системный администратор чувствовал, что я наступаю ему на пятки, задавая кучу вопросов, если мне не нужно. Я просто хочу обосновать необходимость обновления, если это поможет ...
Мы работаем с SQL Server 2008 R2, все наши клиенты либо Win 7, либо RC через терминальный сервер, работающий под управлением 2008. Наше приложение очень тяжелое для БД, особенно если учесть размер нашей организации.
Итак, мой главный вопрос: в настоящее время мы работаем под управлением Windows Server 2003 r2 sp2, может ли обновление до Server 2008 r2 (или новее) заметно улучшить производительность? Я читал, что благодаря своим новым функциям он может улучшить производительность где-то еще, но я не видел, чтобы кто-нибудь комментировал производительность БД.
Если да, то есть ли какие-либо доказательства, которые я могу использовать в поддержку своего аргумента?
Кроме того, поскольку мы используем SQL 2008 r2, а наши клиенты - Win 7, какие драйверы БД должны быть установлены нашим клиентам? Что должен был установить сервер?
Если мне нужно что-то уточнить, прокомментируйте.
Возможный дубликат: Как вы проводите нагрузочное тестирование и планирование емкости для баз данных?
Вам необходимо работать с командой системных администраторов, чтобы измерить и определить текущие узкие места. Если с ним трудно общаться, я сочувствую, и это отстой; вам нужно выяснить, как лучше всего с ним работать. Было бы неплохо иметь четкое описание проблемы с воспроизводимыми тестовыми примерами, а не «это медленно!» Также используйте Perfmon и профилировщик SQL; Судя по тому немногому, что вы нам сказали, проблема может быть в плохих индексах, и тогда она лежит на вас. Как только вы узнаете, что SQL считает медленным, вы сможете выяснить, является ли это кодом, структурой БД, медленным вводом-выводом, загруженным процессором и т. Д.
Как только вы узнаете, в чем заключаются узкие места, вы сможете увидеть, поможет ли Win2k8 R2.
Подсказка: вероятно, нет.
Дополнительная мысль: почему вы смотрите на 2008 R2, а не на 2012 R2?
Хорошо, основы:
Если вы не говорите о 32-битном 2003 R2, различия будут минимальными.
Правило первое для баз данных - жить и умереть от ввода-вывода, а обычные виртуальные машины совершенно не подходят для тяжелой работы ввода-вывода. Не потому, что виртуальная машина - отстой, а потому, что настройка виртуальной машины - это обычная настройка. Это похоже на получение стандартного автомобиля напрокат и попытки участвовать в гонке - базы данных SQL часто создаются ВОКРУГ дисковой подсистемы.
Скорее всего, у вас есть подсистема с полностью уменьшенным размером диска - попробуйте получить ее задержку (мс / запрос), если она выше, чем малая однозначная цифра, это влияет на производительность запроса. Иногда это нормально (если вы выполняете отчетный запрос, вы в основном его перегрузите), но для чего-либо транзакционного .... Я также уверен, что у вас есть журнал на тех же дисках. Потому что в виртуальной машине у вас нет реального контроля над тем, где хранятся данные.
ОС будет иметь значение, но она будет довольно маленькой по сравнению с этим фактом. Не то чтобы в наши дни я бы запускал что-либо на сервере 2003, и я бы запускал любое обновление администратора до 2008 R2 вместо 2012 R2. Но этому могут мешать политики крупных компаний;)