Это уже там: http://www.onecallnow.com/
Компания, оказывается, размещена в городе, в котором я живу, и я встретил владельца пару раз. У меня нет отношений с компанией, но я услышал что их Клиенты действительно как она. Владелец и я говорили об их технологии бэкенда несколько месяцев назад, и я был впечатлен, что у них ясно были "технические люди", которые знали то, что они делали.
Ну, Вы могли попытаться выполнить Perfmon и SQL Profiler для получения намного большего понимания этого. Но скажите нам немного больше о Вашей конфигурации диска, во-первых. Вы говорите, что у Вас есть 12 дисков, разделенных на 4 раздела. Это означает, что Вы сделали один большой RAID-массив и сократили его в 4 фактических раздела уровня ОС, или Вы делали 4 контейнера RAID, каждого с одним разделом ОС? Первый - хороший рецепт для плохой производительности.
IIRC, единственный выпуск SQL Server 2005, который ограничивает соединения по любой причине, - это Express, и он регулирует только тогда, когда кажется, что одновременных соединений "много". Это' s маловероятно, что кто-то установил Express на мощном сервере или что однопоточное консольное приложение имеет много одновременных подключений.
Если ваши запросы не распараллелены, каждый запрос будет выполняться только на одной из этих машин с восемью (2x4) ядрами, по сути трата остальных семи ядер.
Без других узких мест (IOW, все данные, которые нужны вашим запросам, кэшируются в ОЗУ, и нет никаких блокирующих запросов от чего-то еще), ваши запросы будут использовать 100% одного ядра. Нагрузка на одно «ядро» вашей системы составляет 12,5%. Это похоже на то, что вы видите, если добавить немного дисковой активности.
Если старый сервер достигает 60%, возможно, старый сервер параллелировал (по крайней мере некоторые) запросы, а новый по какой-то причине не распараллеливает запросы.
Я бы использовал Perfmon, чтобы посмотреть нагрузку на процессор по ядрам. Я предполагаю, что вы обнаружите, что один из них на 100% или очень близок к нему. Вы можете обнаружить, что "занятое" ядро меняется с одного на другое. Если все ядра одинаково заняты, происходит нечто более странное. В этом случае я бы определенно захотел поискать ожидания при вводе-выводе файла базы данных. Для этого есть DMV.
Я бы также использовал SSMS для просмотра планов запросов, по крайней мере, для выборки запросов, которые выполняет приложение. Иногда что-то бросается в глаза («Эй, а куда делся этот индекс? Я думал, мы вернули его после обновления» или что-то в этом роде.)
Подводя итог:
Я бы также использовал SSMS для просмотра планов запросов, по крайней мере, для выборки запросов, которые выполняет приложение. Иногда что-то бросается в глаза («Эй, а куда делся этот индекс? Я думал, мы вернули его после обновления» или что-то в этом роде.)
Подводя итог:
Я бы также использовал SSMS для просмотра планов запросов, по крайней мере, для выборки запросов, которые выполняет приложение. Иногда что-то бросается в глаза («Эй, а куда делся этот индекс? Я думал, мы вернули его после обновления» или что-то в этом роде.)
Подводя итог:
Я бы также использовал SSMS для просмотра планов запросов, по крайней мере, для выборки запросов, выполняемых приложением. Иногда что-то бросается в глаза («Эй, куда делся этот индекс? Я думал, мы вернули его после обновления» или что-то в этом роде.)
Подводя итог:
Я бы также использовал SSMS для просмотра планов запросов, по крайней мере, для выборки запросов, выполняемых приложением. Иногда что-то бросается в глаза («Эй, а куда делся этот индекс? Я думал, мы вернули его после обновления» или что-то в этом роде.)
Подводя итог: