Обратная связь по степени параллелизма (DOP)

Область применения: применимо к: SQL Server 2022 (16.x) и более поздним версиям, База данных SQL Azure

SQL Server 2022 (16.x) представил новую функцию, называемую степенью обратной связи параллелизма (DOP), чтобы повысить производительность запросов, определив неэффективность параллелизма для повторяющихся запросов на основе истекшего времени и ожидания. Обратная связь DOP является частью семейства функций обработки запросов и устраняет неоптимальное использование параллелизма для повторяющихся запросов. Этот сценарий помогает оптимизировать использование ресурсов и повысить масштабируемость рабочих нагрузок, когда чрезмерный параллелизм может вызвать проблемы с производительностью.

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

Сведения о других функциях обратной связи с запросами см. в разделе отзывов о предоставлении памяти и оценке кратности (CE).

Степень параллелизма (DOP) отзывов избегает избыточного параллелизма

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

Параллелизм часто полезен для создания отчетов и аналитических запросов или запросов, которые в противном случае обрабатывают большие объемы данных. И наоборот, при запросах, ориентированных на OLTP, которые выполняются параллельно, могут возникать проблемы с производительностью, когда время, затраченное на координацию всех потоков, перевешивает преимущества использования параллельного плана. Дополнительные сведения см. в разделе Параллельное выполнение планов.

  • Чтобы включить обратную DOP_FEEDBACK связь DOP, включите конфигурацию базы данных в пределах базы данных. Например, в пользовательской базе данных:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = ON;
    
  • Чтобы отключить обратную связь DOP на уровне базы данных, используйте конфигурацию с областью DOP_FEEDBACK действия базы данных. Например, в пользовательской базе данных:

    ALTER DATABASE SCOPED CONFIGURATION SET DOP_FEEDBACK = OFF;
    
  • Чтобы отключить обратную связь DOP на уровне запроса, используйте указание запроса DISABLE_DOP_FEEDBACK.

Для каждой базы данных, в которой используется обратная связь DOP, и в состоянии "Чтение записи" необходимо включить хранилище запросов. Обратная связь будет сохранена в представлении каталога sys.query_store_plan_feedback при достижении стабильной степени значения обратной связи параллелизма.

Обратная связь DOP доступна для запросов, работающих на уровне совместимости базы данных 160 (представлено с SQL Server 2022 (16.x)) или более поздней версии.

Сохраняется только проверенный отзыв. Если скорректированная DOP приводит к регрессии производительности, обратная связь DOP вернется к последней известной работоспособной DOP. В этом контексте отмененный пользователем запрос также воспринимается как регрессия. Отзывы DOP не перекомпилировать планы.

Стабильная обратная связь возвращается при повторной компиляции плана и может измениться вверх или вниз, но никогда не выше параметра MAXDOP (включая указание MAXDOP).

Начиная с SQL Server 2022 (16.x), когда включена хранилище запросов для вторичных реплик, обратная связь DOP также учитывается для вторичных реплик в группах доступности. Отзывы DOP могут применять отзывы по-разному к первичной реплике и вторичной реплике. Однако обратная связь DOP не сохраняется на вторичных репликах, а при отработке отказа обратная связь DOP со старой первичной репликой не применяется к новой первичной реплике. При отработках отказа обратная связь, примененная к первичной или вторичной реплике, теряется. Дополнительные сведения см. в хранилище запросов для вторичных реплик.

Степень реализации обратной связи с параллелизмом (DOP)

Степень обратной связи с параллелизмом (DOP) определяет неэффективность параллелизма для повторяющихся запросов на основе истекшего времени и ожидания. Если использование параллелизма считается неэффективным, обратная связь DOP снизит DOP для следующего выполнения запроса, от того, что настроено DOP, и проверить, помогает ли он.

Чтобы оценить соответствие запроса, скорректированное затраченное время на выполнение запроса измеряется за несколько выполнений. Общее затраченное время для каждого запроса корректируется путем пропуска кратковременных блокировок буфера, операций ввода-вывода буфера и ожидания сетевых операций ввода-вывода, которые являются внешними для параллельного выполнения запроса. Цель функции обратной связи DOP заключается в увеличении общего параллелизма и уменьшении ожиданий значительно, даже если оно немного увеличивает время запроса.

Сохраняется только проверенный отзыв. Если скорректированная DOP приводит к регрессии производительности, обратная связь DOP вернется к последней известной работоспособной DOP. В этом контексте отмененный пользователем запрос также воспринимается как регрессия.

Примечание.

Отзывы DOP не перекомпилировать планы.

Рекомендации по параллелизму (DOP)

Минимальное значение DOP для любого запроса, скорректированного с помощью обратной связи DOP, равно 2. Последовательные выполнения недоступны для обратной связи DOP.

Сведения о отзыве можно отслеживать с помощью представления каталога sys.query_store_plan_feedback .

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

В настоящее время обратная связь DOP несовместима с указаниями запросов. Дополнительные сведения см. в разделах Указания (Transact-SQL) — запросы и Указание хранилища запросов.

Расширенные события для отзывов о степени параллелизма (DOP)

Для получения отзывов о параллелизме (DOP) доступны следующие XES:

  • dop_feedback_eligible_query: происходит, когда план запроса становится допустимым для обратной связи DOP. Дополнительные события могут возникать при повторной компиляции или перезапуске экземпляра SQL Server.
  • dop_feedback_provided: происходит, когда обратная связь DOP предоставила данные для заданного запроса. Это событие содержит базовую статистику при первом предоставлении обратной связи и предыдущую статистику обратной связи при предоставлении последующей обратной связи.
  • dop_feedback_validation: происходит при проверке статистики среды выполнения запроса относительно базовой или предыдущей статистики обратной связи.
  • dop_feedback_stabilized: происходит при стабилизации обратной связи DOP для запроса.
  • dop_feedback_reverted: происходит при отмене обратной связи DOP. Событие возникает, когда проверка отзывов завершается ошибкой при первой предоставленной обратной связи. Система вернется к состоянию отсутствия обратной связи.
  • dop_feedback_analysis_stopped: происходит при остановке анализа обратной связи DOP для запроса.

Сохраняемость для степени параллелизма (DOP) обратной связи

Область применения: применимо к: SQL Server 2022 (16.x) и более поздним версиям, База данных SQL Azure

Если механизм обратной связи DOP находит, что новая степень параллелизма хороша, эта оптимизация сохраняется в хранилище запросов и будет применена соответствующим образом к запросу для будущих выполнений.

Эта функция появилась в SQL Server 2022 (16.x) и доступна для запросов, работающих на уровне совместимости базы данных 160 или выше, или QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n указание 160 и выше, а также когда хранилище запросов включена для базы данных и находится в состоянии "чтение записи".