Мы испытываем некоторые трудности с производительностью SQL Server и нуждаемся в некоторой помощи.SQL Server 2005 64-битная блокировка запросов
Наша среда: -
Windows 2003 Enterprise x64 Edition R2 Intel E5450 Quad Core 3ghz Процессор 16GB RAM Server 2005 Enterprise Edition 64bit (9.00.3282.00) совместимость баз данных SQL является 8 (но протестированы на 9) Гиперпоточность отключена
У нас есть одна база данных с 1,2 миллионами таблиц строк, которые запрашиваются (неэффективно), но в результате все 4 процессора насыщаются до такой степени, что все остальные запросы блокируются до тех пор, пока запрос завершен. Это включает в себя запросы для разделения баз данных и абсолютно несвязанных таблиц.
Если запрос выполняется с параметром MAXDOP 1, то все 4 ядра работают с 25%, а запрос занимает в 4 раза больше, в этом случае блокировки не выполняются. В дополнение к этому мы запустили тот же запрос на SQL 2000, и время отклика одно и то же, но не насыщение ЦП.
У нас есть подозрение, что проблема может быть связана с конфликтом над tempdb. В этом конкретном случае у нас есть хранимая процедура, использующая временную таблицу, а также параллельный запрос, запрашивающий temp db, который я предполагаю.
Очевидно, что стандартным ответом будет повторная запись запросов. Во-первых, это не очень эффективный вариант, а во-вторых, это относится только к симптому проблемы. По сути, сервер не может обрабатывать несколько запросов, что вызывает большую озабоченность.
Кто-нибудь знает какие-либо исправления, изменения конфигурации или известные проблемы, которые могут быть причиной этого? Кто-нибудь видел это раньше? Это 64-битный нюанс?
С уважением
Ли
Можете ли вы загрузить копию плана выполнения? В SSMS щелкните параметр Включить фактический запрос, запустите запрос и перейдите на вкладку плана запроса в результатах. Щелкните правой кнопкой мыши и сохраните его как XML. –
«В этом конкретном случае у нас есть хранимая процедура, использующая временную таблицу», если вы делаете SELECT Col1, Col2 INTO #TempTable FROM MyTable, а затем изменяете это, чтобы предварительно создать таблицу. Если нет, то pls игнорируют это! (Также возможно блокирование этих причин было исправлено в SQL2005) – Kristen