Важность нагрузки рабочих процессов в Azure Synapse Analytics
В этой статье объясняется, как важность рабочей нагрузки может повлиять на порядок выполнения выделенных запросов пула SQL в Azure Synapse.
Важность
Бизнес-потребности могут требовать, чтобы рабочие нагрузки хранения данных были более важными, чем другие. Рассмотрим сценарий, в котором критически важные данные о продажах загружаются до закрытия финансового периода. Загрузка данных для других источников, таких как погодные данные, не имеет строгих соглашений об уровне обслуживания. Установка высокой важности для запроса на загрузку данных о продажах и низкой важности для загрузки данных о погоде гарантирует, что загрузка данных о продажах получает первый доступ к ресурсам и завершается быстрее.
Уровни важности
Существует пять уровней важности: низкий, ниже среднего, средний, выше среднего и высокий. Запросам, которые не задают важность, назначается стандартный уровень normal. Запросы с одинаковым уровнем важности имеют одинаковое поведение планирования, существующее сегодня.
Сценарии важности
Помимо базового сценария важности, описанного выше с данными о продажах и погоде, существуют другие сценарии, в которых важность рабочей нагрузки помогает удовлетворить потребности в обработке и запросе данных.
Блокировка
Доступ к блокировкам для действий чтения и записи является одной из областей естественного конфликта. Для таких действий, как переключение разделов или переименование объекта , требуются усиленные блокировки. Без важности рабочей нагрузки выделенный пул SQL в Azure Synapse оптимизирует пропускную способность. Оптимизация пропускной способности означает, что когда выполняемые и ожидающие запросы имеют одинаковые потребности в блокировке и ресурсы доступны, ожидающие запросы могут обойти запросы с более высокими потребностями в блокировке, которые поступили в очередь раньше. После применения важности рабочей нагрузки к запросам с более высокими потребностями блокировки. Запрос с более высокой важностью будет выполняться перед запросом с более низкой важностью.
Рассмотрим следующий пример:
- Q1 активно работает и выбирает данные из SalesFact.
- Q2 поставлен в очередь, ожидая завершения Q1. Она была подана в 9 утра и пытается разделить и переключить новые данные в SalesFact.
- Q3 передан в 9:01 утра и требуется выбрать данные из SalesFact.
Если Q2 и Q3 имеют ту же важность, а Q1 по-прежнему выполняется, Q3 начнет выполняться. Q2 продолжит ожидание получения эксклюзивной блокировки для SalesFact. Если Q2 имеет более высокую важность, чем Q3, Q3 будет ожидать завершения Q2 до начала выполнения.
Нестандартные запросы
Другой сценарий, в котором важность может помочь удовлетворить запросы, заключается в отправке запросов с различными классами ресурсов. Как упоминалось ранее, при той же важности выделенный пул SQL в Azure Synapse оптимизирует пропускную способность. Если запросы смешанного размера (например, smallrc или mediumrc) помещаются в очередь, выделенный пул SQL выбирает самый ранний поступающий запрос, подходящий в пределах доступных ресурсов. При применении важности рабочей нагрузки следующим будет запланирован запрос с наивысшим приоритетом.
Рассмотрим следующий пример в DW500c:
- Q1, Q2, Q3 и Q4 выполняют запросы smallrc.
- Q5 отправлен в ресурсном классе mediumrc в 9:00 утра.
- Задание Q6 отправлено с классом ресурсов smallrc в 9:01 утра.
Так как Q5 является mediumrc, требуется два слота параллелизма. Q5 должен ждать завершения двух выполняемых запросов. Однако при завершении одного из выполняемых запросов (Q1-Q4) Q6 планируется немедленно, так как имеются ресурсы для выполнения запроса. Если Q5 имеет более высокую важность, чем Q6, то Q6 ждёт, пока Q5 не начнёт работать, прежде чем itself начнёт выполнение.
Дальнейшие действия
- Дополнительные сведения о создании классификатора см. в разделе CREATE WORKLOAD CLASSIFIER (Transact-SQL).
- Для получения дополнительной информации о классификации рабочих нагрузок см. раздел Workload Classification.
- См. в разделе "Краткое руководство . Создание классификатора рабочей нагрузки", как создать классификатор рабочей нагрузки.
- Узнайте, как настроить важность рабочей нагрузки и как управлять и отслеживатьрабочие нагрузки.
- Запросы и назначенную важность см. в разделе sys.dm_pdw_exec_requests.