Поделиться через


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

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

Исходная версия продукта: SQL Server 2014, SQL Server 2012
Исходный номер базы знаний: 2964518

В этой статье описываются улучшения производительности и изменения, доступные для версий SQL Server 2014 и SQL Server 2012 с помощью различных обновлений продуктов и параметров конфигурации. Чтобы повысить производительность экземпляра SQL Server, можно применить эти обновления. Степень улучшения, которую вы видите, зависит от различных факторов, которые включают шаблон рабочей нагрузки, точки состязания, макет процессора (количество групп процессора, сокетов, узлов NUMA, ядер в узле NUMA) и объем памяти, присутствующих в системе. Группа поддержки SQL Server использовала эти обновления и изменения конфигурации для достижения разумной производительности для рабочих нагрузок клиентов, использующих аппаратные системы с несколькими узлами NUMA и большим количеством процессоров. Группа поддержки продолжит обновлять эту статью с другими обновлениями в будущем.

Высокоуровневая система, как правило, имеет несколько сокетов, восемь ядер или больше на сокет, а также половину терабайта или больше памяти.

Примечание.

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

Рекомендации группируются в три таблицы следующим образом:

  • Таблица 1 содержит наиболее часто рекомендуемые обновления и флаги трассировки для масштабируемости в высокоуровневых системах.
  • Таблица 2 содержит рекомендации и рекомендации по дополнительной настройке производительности.
  • Таблица 3 содержит дополнительные исправления масштабируемости, которые были включены вместе с накопительным обновлением.

Таблица 1. Важные обновления и флаги трассировки для высокоуровневых систем

Просмотрите следующую таблицу и включите флаги трассировки в столбце флага трассировки после того, как экземпляр SQL Server соответствует требованиям в столбце "Применимой версии" и диапазонов сборок .

Примечание.

  • Применимые версии и сборка указывают на конкретное обновление, в котором был введен флаг изменения или трассировки. Если не указан накопительный пакет обновления, все элементы cu в пакете обновления включены.

  • Неприменимая версия и сборка указывают на конкретное обновление, в котором флаг изменения или трассировки стал поведением по умолчанию. Таким образом, просто применение этого обновления будет достаточно, чтобы получить преимущества.

Внимание

При включении исправлений с флагами трассировки в средах AlwaysOn следует учитывать, что необходимо включить флаги исправления и трассировки на всех репликах, входящих в группу доступности.

Сценарий и симптом для рассмотрения Флаг трассировки Применимые диапазоны версий и сборок Не применимые диапазоны версий и сборок Статья базы знаний и ссылка блога, которая содержит дополнительные сведения
  • Вы сталкиваетесь с большим ожиданием CMEMTHREAD.
  • SQL Server устанавливается в системах с 8 или более ядрами на сокет.
T8048
  • SQL Server 2012 RTM до текущего пакета обновления (SP)/CU
  • SQL Server 2014 RTM с пакетом обновления 1 (SP1)
  • SQL Server 2014 с пакетом обновления 2 (SP2) до текущего пакета обновления (SP/CU)
  • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
  • Вы сталкиваетесь с большим ожиданием CMEMTHREAD.
  • SQL Server устанавливается в системах с 8 или более ядрами на сокет.
T8079 SQL Server 2014 с пакетом обновления 2 (SP2) до текущего пакета обновления (SP/CU)
  • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
  • Вы используете функции, использующие кэш пула журналов. (например, AlwaysOn)
  • SQL Server устанавливается в системах с несколькими сокетами.
T9024 Накопительный пакет обновления 3 для SQL Server 2012 с пакетом обновления 1 (SP2) до SQL Server 2014 RTM
  • SQL Server 2012 с пакетом обновления 3 (SP3) до текущей версии SP/CUSQL
  • Server 2014 с пакетом обновления 1 (SP1) до текущего sp/CU
  • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
ИСПРАВЛЕНИЕ. Значение счетчика "Ожидание записи журналов" в экземпляре SQL Server 2012 или SQL Server 2014
Экземпляр SQL Server обрабатывает тысячи сбросов подключений из-за пула подключений. T1236 Накопительный пакет обновления 9 для SQL Server 2012 с пакетом обновления 1 (SP2) с накопительным пакетом обновления 1 для SQL Server 2014
  • SQL Server 2012 с пакетом обновления 3 (SP3) до текущей версии SP/CUSQL
  • Server 2014 с пакетом обновления 1 (SP1) до текущей версии SP/CUSQL
  • Сервер 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
  • Рабочая нагрузка приложения включает частое использование tempdb (создание и удаление временных таблиц или переменных таблицы).
  • Вы заметите, что запросы пользователей ожидают ресурсов страницы tempdb из-за состязания по выделению.
T1118
  • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
  • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
  • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
Улучшения параллелизма для базы данных tempdb

ПРИМЕЧАНИЕ. Включите флаг трассировки и добавьте несколько файлов данных для базы данных tempdb.
  • У вас несколько файлов данных tempdb.
  • Файлы данных сначала задаются таким же размером.
  • Из-за интенсивной активности файлы tempdb сталкиваются с ростом, и не все файлы растут одновременно и вызывают спор о выделении.
T1117
  • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
  • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
  • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
  • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
Рекомендации по сокращению состязания выделения ресурсов в базе данных tempdb SQL Server.
Тяжелые SOS_CACHESTORE планы или планы часто вытеснили на нерегламентированные рабочие нагрузки запросов. T174
  • SQL Server 2012 с пакетом обновления 1 (SP1) с накопительным пакетом обновления 14 (CU) до текущего пакета обновления (SP1)
  • SQL Server 2014 RTM CU6 с текущим пакетом обновления (SP/CU)
нет
  • Записи в кэше планов вытеснили из-за роста других кэшей или клерков памяти
  • Высокий уровень потребления ЦП из-за частых перекомпиляция запросов
T8032
  • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
  • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
нет
Существующая статистика не часто обновляется из-за большого количества строк в таблице. T2371
  • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
  • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
нет
  • Выполнение заданий статистики занимает много времени.
  • Не удается параллельно выполнять несколько заданий обновления статистики.
T7471 SQL Server 2014 с пакетом обновления 1 (SP1) до текущего пакета обновления (SP/CU) нет Повышение производительности статистики обновлений с помощью SQL 2014 и SQL 2016
Команда CHECKDB занимает много времени для больших баз данных.
  • T2562
  • T2549
    • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
    • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
    нет
    Команда CHECKDB занимает много времени для больших баз данных. T2566
    • RTM SQL Server 2012 в текущий пакет обновления (SP/CU)
    • SQL Server 2014 RTM в текущий пакет обновления (SP/CU)
    нет
    Выполнение параллельных запросов к хранилищу данных, которые занимают длительное время компиляции, приводит к RESOURCE_SEMAPHORE_QUERY_COMPILE ожиданиям. T6498 Накопительный пакет обновления 6 для SQL Server 2014 с пакетом обновления 1 (SP1)
    • SQL Server 2014 с пакетом обновления 2 (SP2) до текущей версии SP/CUSQL
    • Сервер 2016 RTM в текущий пакет обновления (SP/CU)
    • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
    Исправления оптимизатора производительности запросов по умолчанию отключены. T4199
    • SQL Server 2012 RTM с пакетом обновления 4 (SP4)
    • SQL Server 2014 RTM до последней версии
    нет
    Вы испытываете низкую производительность с помощью операций запросов с пространственными типами данных.
    • T6532
    • T6533
    • T6534
    • SQL Server 2012 с пакетом обновления 3 (SP3) до текущего пакета обновления (SP/CU)
    • SQL Server 2014 с пакетом обновления 2 (SP2) до текущего пакета обновления (SP/CU)
      • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
      • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
        • Запросы встречаются SOS_MEMORY_TOPLEVELBLOCKALLOCATOR и ожидает CMEMTHREAD.
        • Для процесса SQL Server имеется низкое доступное виртуальное адресное пространство.
        T8075
        • SQL Server 2012 с пакетом обновления 2 (SP2) с накопительным пакетом обновления 8 (CU) до текущего пакета обновления (SP2)
        • SQL Server 2014 RTM CU10 с текущим пакетом обновления (SP/CU)
        • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
        • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
        ИСПРАВЛЕНИЕ. Ошибка нехватки памяти, если виртуальное адресное пространство процесса SQL Server низко в SQL Server
        • SQL Server устанавливается на компьютере с большим объемом памяти.
        • Создание новых баз данных занимает много времени.
        T3449
        • SQL Server 2012 с пакетом обновления 3 (SP3) до текущего пакета обновления (SP/CU)
        • SQL Server 2014 RTM CU14 с текущим накопительным пакетом обновления RTM
        • SQL Server 2014 с пакетом обновления 1 (SP1) до текущего пакета обновления (SP/CU)
        • SQL Server 2016 RTM в текущий пакет обновления (SP/CU)
        • RTM SQL Server 2017 в текущий пакет обновления (SP/CU)
        ИСПРАВЛЕНИЕ. Создание базы данных SQL Server в системе с большим объемом памяти занимает больше времени, чем ожидалось

        Таблица 2. Общие рекомендации и рекомендации по повышению производительности экземпляра SQL Server

        Просмотрите содержимое статьи базы знаний/столбец "Электронная книга по ресурсам" и рассмотрите возможность реализации рекомендаций в столбце "Рекомендуемые действия".

        Статья базы знаний/ ресурс Электронной документации Рекомендованные действия
        Настройка параметра конфигурации сервера max degree of parallelism Используйте хранимую процедуру sp_configure, чтобы внести изменения в конфигурацию, чтобы настроить параметр конфигурации сервера максимальной степени параллелизма для экземпляра SQL Server в соответствии со статьей базы знаний.
        Ограничения вычислительной емкости по выпуску SQL Server выпуск Enterprise с лицензированием server + Client Access License (CAL) ограничено 20 ядрами на экземпляр SQL Server. В модели лицензирования по числу ядер никаких ограничений нет. Попробуйте обновить выпуск SQL Server до соответствующего номера SKU, чтобы использовать все аппаратные ресурсы.
        Низкая производительность в Windows Server при использовании плана питания Balanced Просмотрите статью и обратитесь к администратору Windows, чтобы реализовать одно из решений, отмеченных в разделе "Решение" статьи.
        Вручную назначьте узлы NUMA группам K-групп.
        Оптимизация для нерегламентированных рабочих нагрузок FORCED PARAMETERIZATION Записи в кэше планов вытеснили из-за роста других кэшей или клерков памяти. Вы также можете столкнуться с вытеснениями кэша планов, когда кэш достигает максимального количества записей. Помимо флага трассировки 8032, описанного выше, рассмотрите возможность оптимизации для сервера нерегламентированных рабочих нагрузок, а также параметр базы данных FORCED PARAMETERIZATION .
        Сокращение разбиения памяти буферного пула в конфигурации памяти SQL Server и рекомендации по размеру в SQL Server 2012 и более поздних версиях Назначьте пользователю Enable the Lock Pages in Memory Option (Windows) право на запуск службы SQL. Узнайте , как включить функцию "заблокированные страницы" в SQL Server 2012. Установите максимальный объем памяти сервера примерно на 90 процентов от общего объема физической памяти. Убедитесь, что параметры конфигурации памяти сервера используют учетные записи конфигурации памяти только для узлов, настроенных для использования параметров маски сходства.
        Сведения о SQL Server и больших страницах... Параметры настройки SQL Server при выполнении в рабочих нагрузках с высокой производительностью Рассмотрите возможность включения TF 834, если у вас есть сервер с большим объемом памяти, особенно с аналитической или хранилищем данных рабочей нагрузки. Помните, что TF 834 не рекомендуется использовать индексы columnstore.
        Описание параметров "количество контейнеров кэша проверки доступа" и "квота проверки доступа к кэшу", доступные в хранимой процедуре sp_configure Используйте параметры конфигурации сервера проверки доступа для проверки доступа, чтобы настроить эти значения в соответствии с рекомендациями в статье базы знаний. Рекомендуемые значения для высокоуровневых систем приведены следующим образом:
        "Количество контейнеров кэша проверки доступа": 256
        "Квота кэша проверки доступа": 1024

        Указания запроса на предоставление памяти ALTER WORKLOAD GROUP Если у вас много запросов, которые исчерпают большие объемы памяти, уменьшите request_max_memory_grant_percent группу рабочих нагрузок по умолчанию в конфигурации регулятора ресурсов с 25 процентов по умолчанию до меньшего значения. Доступны новые параметры предоставления памяти запроса (min_grant_percent и max_grant_percent) в SQL Server
        Мгновенное инициализация файлов Обратитесь к администратору Windows, чтобы предоставить учетной записи службы SQL Server право пользователя "Выполнение задач по обслуживанию томов", как указано в разделе электронной документации.
        Рекомендации по настройке autogrow и autoshrink в SQL Server Проверьте текущие параметры базы данных и убедитесь, что они настроены в соответствии с рекомендациями в статье базы знаний.
        Контрольные точки базы данных (SQL Server) Рассмотрите возможность включения косвенных контрольных точек в пользовательских базах данных для оптимизации поведения ввода-вывода в SQL Server 2012 и 2014.
        ИСПРАВЛЕНИЕ. Медленная синхронизация при наличии разных размеров сектора для файлов журнала первичной и вторичной реплики в средах SQL Server AG и Logshipping Если у вас есть группа доступности, в которой журнал транзакций на первичной реплике находится на диске с размером 512-байтового сектора, а журнал транзакций вторичной реплики находится на диске с размером сектора 4K, может возникнуть проблема, при которой синхронизация замедляется. В этих случаях включение TF 1800 должно исправить проблему. Дополнительные сведения см. в разделе "Флаг трассировки 1800".
        Если sql Server еще не привязан к ЦП, а 1,5% до 2% не является незначительным для рабочих нагрузок, рекомендуется включить TF 7412 в качестве флага трассировки запуска. Этот флаг обеспечивает упрощенное профилирование в SQL Server 2014 с пакетом обновления 2 (SP2) или более поздней версии, что дает возможность выполнять устранение неполадок с динамическими запросами в рабочих средах.

        Таблица 3. Исправления производительности, включенные в накопительное обновление

        Просмотрите описание в столбце "Симптомы" и примените необходимые обновления в столбце обязательных обновлений в применимых средах. Дополнительные сведения о соответствующих проблемах см. в статье базы знаний. Эти рекомендации не требуют включения дополнительных флагов трассировки в качестве параметров запуска. Просто применение последнего накопительного обновления или пакета обновления, включающего эти исправления, достаточно, чтобы получить преимущество.

        Примечание.

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

        Симптомы Требуемое обновление Статья базы знаний
        Неустрачивые операции записи во время выбора временных таблиц вызывают проблемы с производительностью. SQL Server 2012 с пакетом обновления 2 (SP2) с накопительным пакетом обновления 1 (CU1)
        SQL Server 2012 с пакетом обновления 1 (SP1) с накопительным пакетом обновления 10 (CU10)
        ИСПРАВЛЕНИЕ. Низкая производительность операций ввода-вывода при выборе временной операции таблицы в SQL Server 2012
        Возникает PWAIT_MD_RELATION_CACHE или MD_LAZYCACHE_RWLOCK ожидается после прерывания ALTER INDEX ... ONLINE операции запроса. SQL Server 2014 RTM CU1
        SQL Server 2012 с пакетом обновления 1 (SP1) CU9
        ИСПРАВЛЕНИЕ. Производительность уменьшается после ALTER INDEX... Операция ONLINE прерывается в SQL Server 2012 или SQL Server 2014
        Запросы внезапно выполняются плохо на стандартном выпуске продукта. SQL Server 2014 RTM CU1
        SQL Server 2012 с пакетом обновления 1 (SP1) CU7
        ИСПРАВЛЕНИЕ. Потоки не запланированы равномерно в SQL Server 2012 или SQL Server 2014 выпуск Standard
        Низкая производительность из-за внезапного падения продолжительности жизни страницы. SQL Server 2012 с пакетом обновления 1 (SP1) CU4 ИСПРАВЛЕНИЕ. В SQL Server 2012 могут возникнуть проблемы с производительностью
        Высокая загрузка ЦП монитором ресурсов в системах с конфигурацией NUMA, большим объемом памяти и максимальным объемом памяти сервера имеет низкое значение. SQL Server 2012 с пакетом обновления 1 (SP1) CU3 ИСПРАВЛЕНИЕ. Пик загрузки ЦП при отсутствии нагрузки на сервере после установки SQL Server 2012 на сервере
        Неозначение планировщика при выделении памяти для сортировки выполняет связанные большие объемы памяти в системах с большим объемом памяти, установленной. SQL Server 2012 с пакетом обновления 1 (SP1) с накопительным пакетом обновления 2 (CU2) ИСПРАВЛЕНИЕ. Ошибка 17883 при выполнении запроса на сервере с большим количеством ЦП и большим объемом памяти в SQL Server 2012 или SQL Server 2008 R2
        Если оператор сортировки проходит множество контейнеров в буферном пуле в системах с большой памятью, не предоставляет планировщик. SQL Server 2012 с пакетом обновления 1 (SP1) с накопительным пакетом обновления 1 (CU1) ИСПРАВЛЕНИЕ. При выполнении запроса в SQL Server 2012 при выполнении запроса в SQL Server 2012 сообщение об ошибке не возвращается.
        Высокая загрузка ЦП при выполнении параллельных запросов, которые занимают много времени для компиляции в системах с несколькими узлами NUMA и множеством ядер. SQL Server 2012 с пакетом обновления 2 (SP2) с накопительным пакетом обновления 1 (CU1)
        ПАКЕТ обновления 2 (CU2) SQL Server 2014 RTM
        ИСПРАВЛЕНИЕ. Рабочая нагрузка интенсивной компиляции запросов не масштабируется с растущим числом ядер на оборудовании NUMA и приводит к насыщенности ЦП в SQL Server
        Выделение памяти для операторов сортировки занимает много времени в системах NUMA с большой памятью из-за выделения удаленных узлов. SQL Server 2012 с пакетом обновления 1 (SP1) CU3 ИСПРАВЛЕНИЕ. Проблемы с производительностью SQL Server в средах NUMA
        Ошибки нехватки памяти при установке SQL Server на компьютере NUMA с большим объемом ОЗУ и SQL Server имеет много внешних страниц. ПАКЕТ обновления 1 (CU1) SQL Server 2012 RTM ИСПРАВЛЕНИЕ. Ошибка вне памяти при запуске экземпляра SQL Server 2012 на компьютере, использующего NUMA
        Спор спинлока SOS_CACHESTORE и SOS_SELIST_SIZED_SLOCK при создании индекса для типа пространственных данных в большой таблице. SQL Server 2014 RTM CU1
        SQL Server 2012 с пакетом обновления 1 (SP1) CU7
        ИСПРАВЛЕНИЕ. Низкая производительность в SQL Server 2012 или SQL Server 2014 при создании индекса для типа пространственных данных большой таблицы
        Тип ожидания CMEMTHREAD при создании индекса для типа пространственных данных в больших таблицах. SQL Server 2014 RTM CU1
        SQL Server 2012 с пакетом обновления 1 (SP1) CU7
        ИСПРАВЛЕНИЕ. Низкая производительность в SQL Server при сборке индекса для типа пространственных данных большой таблицы в экземпляре SQL Server 2012 или SQL Server 2014
        Проблемы с производительностью из-за SOS_PHYS_PAGE_CACHE ожидания CMEMTHREAD во время выделения памяти на компьютерах с большой памятью. SQL Server 2014 RTM CU1
        SQL Server 2012 с пакетом обновления 1 (SP1) CU9
        ИСПРАВЛЕНИЕ. Проблемы с производительностью возникают в средах NUMA во время обработки внешней страницы в SQL Server 2012 или SQL Server 2014
        Команда CHECKDB занимает много времени для больших баз данных. Накопительный пакет обновления 6 для SQL Server 2014 ИСПРАВЛЕНИЕ: команда DBCC CHECKDB/CHECKTABLE может занять больше времени в SQL Server 2012 или SQL Server 2014

        Важные примечания

        Ссылки

        Применяется к

        • SQL Server 2014 Enterprise
        • SQL Server 2014 Enterprise Core
        • SQL Server 2014 Business Intelligence
        • Разработчик SQL Server 2014
        • SQL Server 2014 Standard
        • Веб-сайт SQL Server 2014
        • SQL Server 2014 Express
        • Бизнес-аналитика SQL Server 2012
        • Разработчик SQL Server 2012
        • SQL Server 2012 Enterprise
        • SQL Server 2012 Standard.
        • Веб-сайт SQL Server 2012
        • SQL Server 2012 Enterprise Core