Почему полная статистика обновлений сканирования использует 100% ЦП в SQL Server 2014, когда он использует, возможно, 20% ЦП в SQL Server 2008 R2 для тех же таблиц с аналогичными аппаратными возможностями?
Я смотрел MAXDOP, другие варианты, и действительно не вижу ничего, что выделяется. Я понимаю, что могут быть настройки, которые могут вызывать это, но настройки очень похожи для обеих баз данных (например, MAXDOP4 для обеих, причем обе имеют несколько ядер). Оба Enterprise Edition.
Есть ли что-то «отличное» в SQL Server 2014 от SQL Server 2008 R2, которое могло бы объяснить это? У меня опция памяти на 90% для обоих серверов. Есть мысли о том, что искать?
Я запускаю статистику обновлений с полным (100%) сканированием один раз в неделю на двух серверах с использованием SQL Server 2008 R2 / SP3 и SQL Server 2014 / SP2, и базы данных имеют одинаковую структуру. На сервере 2008 R2 статистика обновления двух очень больших таблиц занимает несколько часов, чего я и ожидаю, но загрузка ЦП не превышает 20% или около того. Однако на сервере 2014 года процессор уходит на 100% за 40 минут. Таблицы немного меньше на сервере 2014 года. Я вижу это с помощью меню анализа SQL Monitor.
Вот вывод файла журнала Ola на SQL Server 2014, загрузка процессора увеличивается до 100% с 2:10 до 2:45:
Date and time: 2017-06-24 02:10:20
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000005_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:07:48
Date and time: 2017-06-24 02:18:08
Date and time: 2017-06-24 02:18:08
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000006_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:32:22
Date and time: 2017-06-24 02:50:30
Вот выходные данные файла журнала Ola на SQL Server 2008 R2 для двух показателей, приведенных выше, но загрузка ЦП может достигать 15%:
Date and time: 2017-06-24 03:30:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000003_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:05:00
Date and time: 2017-06-24 03:35:32
Date and time: 2017-06-24 03:35:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000004_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:52:31
Date and time: 2017-06-24 04:28:03
Я не могу запустить их с сервером maxdop = 1, поскольку это исключает генерацию всех параллельных планов, что может повредить приложение. Я планирую пойти в противоположном направлении и увеличить его до 8 (на коробке 16 ядер) и посмотреть, что получится. Может идти быстрее, чтобы сократить время разметки процессора. Эта работа выполняется в то время как пользователи в основном ушли.
tempdbконфигурация же? Его можно использовать во времяUPDATE STATISTICSработы, так что это также может быть проблемой.