Мы испытываем некоторые трудности с производительностью SQL Server и нам нужна помощь.
Наше окружение: -
Windows 2003 Enterprise x64 Edition R2
Четырехъядерный процессор Intel E5450 3 ГГц
16 ГБ ОЗУ
64-разрядная версия Enterprise Edition для SQL Server 2005 (9.00.3282.00)
Совместимость базы данных - 8 (но также проверена на 9)
Гиперпоточность выключена
У нас есть одна база данных с таблицей строк в 1,2 миллиона, которая запрашивается (неэффективно), но в результате все 4 процессора насыщаются до такой степени, что все остальные запросы блокируются до тех пор, пока запрос не будет завершен. Это включает запросы к отдельным базам данных и совершенно не связанные таблицы.
Если запрос выполняется с опцией MAXDOP 1, тогда все 4 ядра работают на 25%, а запрос занимает в 4 раза больше времени, в этом случае блокирование не выполняется. В дополнение к этому мы выполнили тот же запрос на SQL 2000, и время ответа такое же, но без насыщения ЦП.
У нас есть подозрение, что проблема может быть связана с разногласиями из-за tempdb. В этом конкретном случае у нас есть сохраненный процесс, использующий временную таблицу, а также параллельный запрос, обращающийся к временной базе данных, которую я предполагаю.
Очевидно, что стандартным ответом будет переписать запросы. Во-первых, это не совсем приемлемый вариант, а во-вторых, это только лечение симптомов проблемы. По сути, сервер не может обрабатывать несколько запросов, что вызывает серьезную обеспокоенность.
Кто-нибудь знает какие-либо исправления, изменения конфигурации или известные проблемы, которые могут быть причиной этого? Кто-нибудь видел это раньше? Это 64-битный нюанс?
Привет
Lee