Функция-классификатор регулятора ресурсов

Применимо к:Управляемому экземпляру SQL Server Azure

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

Классификация

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

Заметка

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

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

  • Создать и зарегистрировать функцию с помощью инструкции ALTER RESOURCE GOVERNOR. Дополнительные сведения см. в статье ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Обновить конфигурацию регулятора ресурсов с помощью инструкции ALTER RESOURCE GOVERNOR с параметром RECONFIGURE.

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

Внимание

Время ожидания клиентского сеанса истекает, если классифицирующая функция не завершается в течение заданного времени ожидания входа в систему. Время ожидания входа — это свойство клиента, поэтому сервер не знает времени ожидания. Долго выполняющаяся функция классификатора может оставить сервер с потерянными подключениями в течение длительных периодов. Важно создавать функции-классификаторы, выполнение которых завершается до истечения времени ожидания соединения.

Определяемая пользователем функция имеет следующие характеристики и поведение.

  • Определяемая пользователем функция вычисляется для каждого нового сеанса, даже если включен пул соединений.

  • Определяемая пользователем функция предоставляет контекст группы рабочей нагрузки для сеанса. После определения членства в группе сеанс привязывается к группе рабочей нагрузки на все время его существования.

  • Если определяемая пользователем функция возвращает значение NULL, значение по умолчанию или имя несуществующей группы, то сеансу предоставляется контекст группы рабочей нагрузки по умолчанию. Кроме того, сеансу предоставляется контекст по умолчанию, если функция по какой-либо причине завершается неуспешно.

  • Функция должна быть определена на уровне сервера (базы данных master).

  • Обозначение определяемой пользователем функции-классификатора вступает в силу только после выполнения команды ALTER RESOURCE GOVERNOR RECONFIGURE.

  • Одновременно в качестве классифицирующей функции может быть обозначена только одна определяемая пользователем функция.

  • Определяемую пользователем функцию-классификатор можно удалить или изменить только после снятия с нее статуса «classifier».

  • В отсутствие определяемой пользователем функции-классификатора все сеансы классифицируются в группу по умолчанию.

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

Внимание

Рекомендуется включить на сервере выделенное административное соединение (DAC). Выделенное административное соединение не подлежит классификации регулятором ресурсов и может использоваться для наблюдения за неполадками классифицирующей функции и их устранения. Дополнительные сведения см. в разделе Диагностическое соединение для администраторов баз данных. Если выделенное административное соединение недоступно для устранения неполадок, другой вариант — перезапустить систему в однопользовательском режиме. Хотя однопользовательский режим не подлежит классификации, он не дает возможности выполнить диагностику классификации регулятора ресурсов, если тот запущен.

Процесс классификации

В контексте регулятора ресурсов процесс входа в сеанс состоит из следующих этапов.

  1. Проверка подлинности имени входа.

  2. Выполнение триггера LOGON (происходит, только если в экземпляре есть триггеры входа).

  3. Классификация

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

Заметка

Сведения о выполнении классифицирующей функции и триггеров LOGON содержатся в представлениях sys.dm_exec_sessions и sys.dm_exec_requests.

Задачи классифицирующей функции

Описание задачи Раздел
Описывает, как создать и проверить определяемую пользователем функцию-классификатор. Создание и тестирование пользовательской функции-классификатора

См. также

регулятор ресурсов
Включение регулятора ресурсов
Пул ресурсов регулятора ресурсов
Группа рабочей нагрузки регулятора ресурсов
Настройка регулятора ресурсов с помощью шаблона
Просмотр свойств регулятора ресурсов