Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2022 (16.x) и более поздним версиям
База данных SQL Azure
Azure SQL Управляемый экземпляр
SQL база данных в Microsoft Fabric
Обратная связь по степени параллелизма (DOP) повышает производительность запросов, выявляя неэффективности параллелизма в повторяющихся запросах на основе времени выполнения и времени ожидания.
Обратная связь по DOP является частью семейства возможностей интеллектуальной обработки запросов и позволяет устранить неоптимальное использование параллелизма для повторяющихся запросов. Этот сценарий помогает оптимизировать использование ресурсов и повысить масштабируемость рабочих нагрузок, когда чрезмерный параллелизм может вызвать проблемы с производительностью.
Вместо того чтобы сталкиваться с недостатками единого значения по умолчанию или вручную настраивать каждый запрос, механизм обратной связи DOP автоматически регулирует DOP, чтобы избежать этих проблем.
Обратная связь DOP доступна для запросов, работающих на уровне совместимости базы данных 160 (впервые появившемся в SQL Server 2022 (16.x)) или более поздних версиях, в базе данных Azure SQL, Управляемом экземпляре Azure SQL (с политикой обновления SQL Server 2025 или Always-up-to-date) и базе данных SQL в Fabric.
Сведения о других функциях обратной связи для запросов см. в разделах Отзыв о выделении памяти и Отзыв об оценке кратности (CE).
Обратная связь по степени параллелизма (DOP) позволяет избежать избыточного параллелизма
Вместо того чтобы мириться с недостатками единого значения по умолчанию для всех случаев или вручную настраивать каждый запрос, механизм обратной связи по DOP автоматически корректирует значение DOP, чтобы избежать избыточного параллелизма. Если использование параллелизма признаётся неэффективным, механизм обратной связи DOP уменьшает DOP при следующем выполнении запроса по сравнению с настроенным значением и проверяет, помогает ли это.
Параллелизм часто полезен для отчетных и аналитических запросов, а также для запросов, которые обрабатывают большие объемы данных. И наоборот, при запросах, ориентированных на OLTP, которые выполняются параллельно, могут возникать проблемы с производительностью, когда время, затраченное на координацию всех потоков, перевешивает преимущества использования параллельного плана. Дополнительные сведения см. в разделе Параллельное выполнение планов.
Чтобы включить обратную связь по DOP, включите
DOP_FEEDBACKконфигурацию уровня базы данных в базе данных. Например, в пользовательской базе данных: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 приводит к снижению производительности, механизм обратной связи DOP вернется к последнему известному корректному значению DOP. В этом контексте отмененный пользователем запрос также воспринимается как регрессия. Обратная связь DOP не вызывает повторную компиляцию планов.
Стабильная обратная связь повторно проверяется при перекомпиляции плана и может быть скорректирована в большую или меньшую сторону, но никогда не превысит значение параметра MAXDOP (включая подсказку MAXDOP).
Начиная с SQL Server 2022 (16.x), при включении хранилища запросов для вторичных реплик обратная связь DOP в группах доступности также работает с учётом вторичных реплик. Обратная связь DOP может применяться по-разному для первичной и вторичной реплики. Однако данные обратной связи DOP не сохраняются на вторичных репликах, и при переключении при отказе данные обратной связи DOP, полученные на старой первичной реплике, не применяются к новой первичной реплике. При переключении после отказа механизм обратной связи, применяемый к первичной или вторичной реплике, теряется. Хранилище запросов доступно на вторичных репликах групп доступности, начиная с SQL Server 2025 (17.x). Дополнительные сведения см. в разделе Хранилище запросов для вторичных реплик.
Реализация обратной связи о степени параллелизма (DOP)
Обратная связь по степени параллелизма (DOP) выявляет неэффективность параллелизма в повторно выполняемых запросах на основе времени выполнения и ожиданий. Если использование параллелизма будет признано неэффективным, механизм обратной связи DOP снизит значение DOP для следующего выполнения запроса относительно настроенного значения и проверит, помогает ли это.
Чтобы оценить соответствие запроса, скорректированное затраченное время на выполнение запроса измеряется за несколько выполнений. Общее время выполнения для каждого запроса корректируется без учёта ожиданий Buffer Latch, Buffer IO и Network IO, которые не относятся к параллельному выполнению запроса. Цель функции обратной связи по DOP заключается в увеличении общего уровня параллелизма и значительном сокращении времени ожидания, даже если это немного увеличивает время выполнения запроса.
Сохраняются только подтверждённые отзывы. Если скорректированное значение DOP приводит к снижению производительности, механизм обратной связи DOP вернется к последнему известному корректному значению DOP. В этом контексте отмененный пользователем запрос также воспринимается как регрессия.
Note
Обратная связь DOP не вызывает перекомпиляцию планов выполнения.
Особенности обратной связи о степени параллелизма (DOP)
Обратная связь DOP не включена по умолчанию в SQL Server 2022 (16.x).
Минимальное значение 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_feedback_reassessment_failed: происходит, когда обратная связь DOP повторно использует ранее сохраненный вариант обратной связи, но обнаружил, что сохраненное значение больше не является допустимым. Это состояние перезапускает цикл обратной связи.
Сохранение обратной связи о степени параллелизма (DOP)
Если механизм обратной связи DOP находит, что новая степень параллелизма хороша, эта оптимизация сохраняется в хранилище запросов и будет применена соответствующим образом к запросу для будущих выполнений.
Эта функция была представлена в SQL Server 2022 (16.x) и доступна для запросов, выполняемых в базе данных с уровнем совместимости 160 или выше, либо с подсказкой QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n 160 и выше, а также когда хранилище запросов включено для базы данных и находится в состоянии «чтение и запись».
Связанный контент
- Умный параллелизм: степень обратной связи параллелизма в SQL Server 2025
- Интеллектуальная обработка запросов: степень обратной связи по параллелизму
- Интеллектуальная обработка запросов в базах данных SQL
- Конфигурация сервера: максимальная степень параллелизма
- Оценка кратности (SQL Server)
- ПЕРЕНАСТРОИТЬ (Transact-SQL)
- Настройка параллельных операций с индексами
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)