SQL Proc медленнее на более новой / более быстрой машине?

У меня довольно сложная процедура, которая в настоящее время занимает около 1:30 (мин. Сек.) Для завершения. Мы переходим на новый сервер, и когда я запускаю тот же запрос с теми же данными на новом сервере, для завершения требуется почти 2:30.

Старый сервер – это один процессор с двухъядерным процессором Intel 4 с тактовой частотой 2,8 ГГц с 3 GIG оперативной памяти, работающий под управлением Windows 2000 и SQL 8. Новый сервер представляет собой двухпроцессорную двухъядерную (4 ядра) 3,4 ГГц машину с 6 GIG RAM работающих под управлением Windows 2008 R2 и SQL 2008.

Я надеялся, что эта процедура (которая запускается часто каждый час) быстрее развивается с новой машиной и новым SQL, но теперь она на 50% медленнее! Я работаю в небольшой компании, занимающейся программированием и сетевыми технологиями, но не являюсь администратором баз данных. Возможно ли какая-то оптимизация на старой машине / SQL, которая не происходит на новом компьютере / SQL? Новая машина ничего не делает, кроме запуска SQL, который был настроен на использование всей доступной RAM.

Когда я запускаю процедуру, кажется, что он использует только одно ядро ​​процессора и всю оперативную память, которую он может получить (то же самое на обеих машинах). И, по-видимому, только один процессор использует примерно 50% в среднем.

Любые указания относительно того, что может вызвать это замедление, оценены.

Брайан

    Я предполагаю, что вы обновили базу данных, выполнив восстановление, обновили ли вы статистику (с полным сканированием) или перестроили все индексы? В противном случае вы не получите оптимальных планов

    для полного сканирования вы можете сделать это

    EXEC sp_msForEachTable 'UPDATE STATISTICS ? WITH FULLSCAN' 

    Это может занять некоторое время, если у вас большой стол

    Вероятная проблема заключается в том, что ваш SQL Server имеет плохой план запроса для хранимой процедуры.

    Вот несколько распространенных методов для преодоления проблемы:

    1. Оптимизация для неизвестных – сообщите своему SQL Server, что для этой хранимой процедуры он всегда должен определять, на лету, какой план запроса использовать – он не будет использовать историческую информацию. Это часто приводит к более последовательному времени выполнения.

    2. Предотвращение обнаружения параметров – Иногда SQL Server рассматривает ваши параметры и сводит к определенному тарифному плану. Иногда это очень нежелательно и может занять иначе очень быстрый SPROC и превратить его в многоминутного бегемона. Повторно объявляя и копируя все ваши параметры, это становится проблемой без проблем.

    3. Вы также должны очистить свою статистику

      EXEC sp_MSForEachTable 'Update Statistics ''?'' with FULLSCAN'

    Если обновление статистики и другие изменения в БД не помогают, проверьте сам сервер.

    У нового сервера есть только один диск, а старый сервер разделен на несколько дисков?

    Являются ли новые жесткие диски медленнее, чем старые жесткие диски?

    Включено ли антивирусное сканирование на новом сервере?

    Ищите другие проблемы с конфигурацией сервера.

    Interesting Posts

    SQL для определения минимальных последовательных дней доступа?

    Драйвер ODBC Microsoft SQL Server на Linux Ubuntu 14.04: неправильная версия библиотеки

    EF6: изменение свойства объекта с отношением внешнего ключа. Нужно ли мне изменять идентификатор или связанный объект или и то, и другое?

    Я не могу использовать базу данных в SQL Azure

    Ошибка OptimisticConcurrencyException: Возможная причина: UpdateCommand

    Вставка символа в начале строки в SQL

    Получение количества записей в дочерней таблице с помощью оператора select

    зарегистрировать DLL-объект, который ссылается на System.Web для SQL CLR

    Определение процента в таблице фактов

    SQL с использованием UPDLOCK в запросе для обновления первой записи после фильтрации и упорядочения таблицы

    Ошибка транспортного уровня с простым выбором запроса

    SQL Server – Архивирование данных (стратегия / хранимая процедура)

    Одно значение параметра обновляется буквально, но другие работают Fine C #

    SQL Server 2005 FTS неожиданные результаты

    Перемещение базы данных SQL Server снижает производительность

    Давайте будем гением компьютера.