После обновления серверного оборудования (процессор + материнская плата) у меня значительно увеличилась длительность запросов для действительно небольших и простых запросов.
Программное обеспечение: Windows Server 2012 R2 + SQL Server 2014 Накопитель: Samsung SSD 850 EVO 2TB Disk Старое оборудование: 4-ядерный процессор i7-4790k 4,0 ГГц + материнская плата Asus H97M-E + 32 ГБ DDR3 Новое оборудование: 10-ядерный процессор i9-7900X 3,60 ГГц + материнская плата Asus Prime X299 + 32 ГБ DDR4
Пример запроса: ОБНОВЛЕНИЕ НАБОР CLIE_PRECIOS_COMPRA [c_res_tr] = '0.0' ГДЕ eje = '18 'И mes = 8 И dia = 27 AND hor = 19 И unipro =' 001 '
Результат профилировщика SQL: Старое оборудование - ЦП: 0, чтение 4, запись 0, продолжительность 123 Старое оборудование - ЦП: 0, чтение 4, запись 0, продолжительность 2852
Я проверил, что скорость сети обоих серверов одинакова, но в любом случае я запускаю запросы непосредственно на сервере через консоль управления Microsoft SQL Server, чтобы избежать проблем с приложениями или сети.
Проверено, что скорость хранения тоже одинакова как при чтении, так и при записи на старом и новом оборудовании.
Также играл с паралелизмом и пробовал разные сценарии, даже отключая паралелизм с тем же результатом.
Конечно, данные одинаковы, имея одну и ту же копию базы данных SQL на обоих аппаратных средствах.
Я установил продолжительность отображения в микросекундах, а не в миллисекундах, чтобы лучше понять разницу.
Разница в продолжительности для одного запроса на самом деле не видна пользователю, но проблема в том, что существует несколько тысяч запросов этого типа, и увеличение времени важно.
Любой намек или предмет для расследования были бы очень признательны.
Текущий план выполнения Новый сервер: https://www.brentozar.com/pastetheplan/?id=HJYDtQQD7 Текущий план выполнения Старый сервер: https://www.brentozar.com/pastetheplan/?id=SynyW4mPQ
Заранее спасибо.
Возможно ли, что ваша статистика устарела? Вы можете обновить и посмотреть, не в этом ли виноват.
И, возможно, перестройте свои индексы на новом сервере (который также обновит статистику) и посмотрите, поможет ли это кому-нибудь.
@ Sean-lange, обновленный пост с планом выполнения, но не связанный с конкретным запросом, так как некоторые из них работают с разными таблицами в одной базе данных.
Можете ли вы получить реальный план выполнения. Содержащаяся информация ОЧЕНЬ отличается от предполагаемого плана.
@SeanLange, извините, обновлен фактическим планом выполнения.
Я бы также обновил статистику, проверил фрагментацию индекса и посмотрел, нужно ли его переписывать / перестраивать. Может быть, вы могли бы показать нам план выполнения на старом сервере?
@Greenspark, обновленная статистика бессмысленно
@pmbAustin индексы перестроены без изменений
А как насчет хранения? Это точно такое же хранилище? Или вы перенесли базу данных на другой диск или массив?
@ DaniellePaquette-Harvey, обновленная статистика, проверка фрагментации индекса и перестроенный индекс. Обновлен основной пост со старым планом выполнения сервера.
Может быть, это Spectre fix или еще какие-то прошивки?
Вы проверили назначение ЦП?
@SeanLange, переместил SSD-диск со старого на новый сервер, так что точно такое же хранилище, но похоже, что тест производительности ssd дает разные результаты при выполнении с одним и тем же модулем ssd на новом и старом сервере, как показано на этом снимке: imgur.com/a/av1mD4x
@Hitobat, там нет призраков, пытается играть сейчас на уровне BIOS с конфигурацией процессора
Теперь займемся Intel SpeedStep, SpeedShift и состояниями процессора. Похоже, кто-то замешан ... Буду держать вас в курсе.
НАКОНЕЦ РЕШЕНА !!! Это были драйверы SATA. Использование стандартного Microsoft SATA / AHCI помогло. Использование специальных драйверов от контроллера Intel C200 + / C600 + SATA приводило к задержке доступа к базам данных SQL Server любого типа. Пробовал разные версии пропиетарных драйверов Intel для моей платы с тем же результатом. При необходимости спросите дополнительную информацию. Теперь только изменение длительности драйверов SATA увеличилось с 3000 микросекунд до менее 200.





Вам нужно посмотреть план выполнения. Тогда вы можете загрузить его сюда. brentozar.com/pastetheplan Не забудьте предоставить нам ссылку.