Почему полная статистика обновлений сканирования использует 100% ЦП в SQL Server 2014, когда он использует, возможно, 20% ЦП в SQL Server 2008 R2 для тех же таблиц с аналогичными аппаратными возможностями?
Я смотрел MAXDOP
, другие варианты, и действительно не вижу ничего, что выделяется. Я понимаю, что могут быть настройки, которые могут вызывать это, но настройки очень похожи для обеих баз данных (например, MAXDOP
4 для обеих, причем обе имеют несколько ядер). Оба 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
работы, так что это также может быть проблемой.