Различная производительность SQL на разных машинах - PullRequest
0 голосов
/ 28 марта 2019

У меня есть две разные машины, на которых установлены экземпляры SQL Server 2017 Developer Edition на обеих машинах. Обе машины имеют 100% одинаковую структуру механизма SQL-сервера (таблицы, представления, SP, индексы и т. Д.), Но на разных спецификациях компьютеров. Вот спецификации:

Machines-1 (ноутбук) Оперативная память: 12 ГБ (100% выделено для SQL) Процессор: Intel Core i7-7500U 2,7 ГГц Хранение: SSD 500 ГБ ОС: Windows 10 Pro

Машина-2 (Настольная машина) Оперативная память: 32 ГБ (100% выделено для SQL) Процессор: Intel Xeon Silver 4110CPU 2,10 ГГц Хранилище: M.2 для ОС и HDD для SQL Server ОС: Windows Server 2016

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что одни и те же запросы и SP занимают гораздо больше времени на Machine-2, чем на Machine-1. Максимальное время обработки сложного запроса на компьютере 1 составило 25 минут, а на компьютере 2 - 1,5 часа.

Пожалуйста, помогите мне решить эту проблему с производительностью, поскольку она сильно влияет на повседневные операции.

1 Ответ

0 голосов
/ 28 марта 2019

Вы не должны устанавливать распределение памяти на 100% для SQL Server, вам нужно оставить немного места для вашей ОС, иначе все пострадает.

У вас также могут быть проблемы с параллелизмом, когда может использоваться больше процессоров, чем необходимо. Вы увидите много CXPACKET ожидания в результате этого. Настройте максимальную степень параллелизма на основе следующих Указаний

  • Сервер с одним узлом NUMA и менее чем 8 логическими процессорами Держите MAXDOP на уровне или ниже # логических процессоров
  • Сервер с одним узлом NUMA и более чем 8 логическими процессорами Держите MAXDOP на уровне 8
  • Сервер с несколькими узлами NUMA & Меньше чем 8 логических процессоров на узел NUMA Держите MAXDOP на уровне или ниже # логических процессоров на узел NUMA
  • Сервер с несколькими узлами NUMA и более чем 8 логическими процессорами на узел NUMA. Держите MAXDOP на уровне 8

Вам также необходимо настроить порог стоимости для параллелизма , так как значение по умолчанию слишком мало для реальных проблем.

Наконец, вы должны учитывать, что ваши данные на ноутбуке находятся на SSD, а данные на рабочем столе - на жестком диске. Это сильно повлияет на скорость извлечения и обработки данных.

Я не уверен, что есть что-то еще, что можно решить. Убедитесь, что ваша статистика создана и обновлена ​​в обоих местах, и ведется обслуживание индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...