Resource Governor Classifier FunctionResource Governor Classifier Function

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed InstanceПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance

Процесс классификации регулятора ресурсов SQL ServerSQL Server назначает входящие сеансы группе рабочей нагрузки с учетом характеристик сеанса.The SQL ServerSQL Server resource governor classification process assigns incoming sessions to a workload group based on the characteristics of the session. Логику классификации можно адаптировать путем написания определяемой пользователем функции, называемой функцией-классификатором.You can tailor the classification logic by writing a user-defined function, called a classifier function.

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

Регулятор ресурсов поддерживает классификацию входящих сеансов.Resource Governor supports the classification of incoming sessions. Классификация основывается на наборе пользовательских критериев, содержащихся в функции.Classification is based on a set of user-written criteria contained in a function. Результаты логики функции позволяют регулятору ресурсов классифицировать сеансы по существующим группам рабочей нагрузки.The results of the function logic enable Resource Governor to classify sessions into existing workload groups.

Примечание

Внутренняя группа рабочей нагрузки наполняется запросами, предназначенными только для внутреннего использования.The internal workload group is populated with requests that are for internal use only. Критерии, используемые для перенаправления этих запросов, изменить нельзя, так же как нельзя классифицировать запросы во внутреннюю группу рабочей нагрузки.You cannot change the criteria used for routing these requests and you cannot classify requests into the internal workload group.

Можно написать скалярную функцию с логикой, которая будет использоваться для назначения входящих сеансов в группу рабочей нагрузки.You can write a scalar function that contains the logic that is used to assign incoming sessions to a workload group. Перед использованием этой функции необходимо выполнить следующие действия.Before you can use this function, you must complete the following actions:

  • Создать и зарегистрировать функцию с помощью инструкции ALTER RESOURCE GOVERNOR.Create and register the function using the ALTER RESOURCE GOVERNOR statement. Дополнительные сведения см. в разделе ALTER RESOURCE GOVERNOR (Transact-SQL).For more information, see ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Обновить конфигурацию регулятора ресурсов с помощью инструкции ALTER RESOURCE GOVERNOR с параметром RECONFIGURE.Update the Resource Governor configuration using the ALTER RESOURCE GOVERNOR statement with the RECONFIGURE parameter.

После создания функции и применения изменений в конфигурации классифицирующая функция регулятора ресурсов будет использовать возвращаемое этой функцией имя группы рабочей нагрузки для передачи нового запроса в соответствующую группу рабочей нагрузки.After you create the function and apply the configuration changes, the Resource Governor classifier will use the workload group name returned by the function to send a new request to the appropriate workload group.

Важно!

Время ожидания клиентского сеанса истекает, если классифицирующая функция не завершается в течение заданного времени ожидания входа в систему.The client session may time out if the classification function does not complete within the specified time-out for the login. Время ожидания входа в систему — это клиентское свойство, поэтому серверу оно неизвестно. Долго выполняемая функция-классификатор может оставлять на сервере потерянные соединения в течение долгого времени.Login time-out is a client property and as such, the server is unaware of a time-out. A long-running classifier function can leave the server with orphaned connections for long periods. Важно создавать функции-классификаторы, выполнение которых завершается до истечения времени ожидания соединения.It is important that you create classifier functions that finish executing before a connection time-out.

Определяемая пользователем функция имеет следующие характеристики и поведение.The user-defined function has the following characteristics and behaviors:

  • Определяемая пользователем функция вычисляется для каждого нового сеанса, даже если включен пул соединений.The user-defined function is evaluated for every new session, even when connection pooling is enabled.

  • Определяемая пользователем функция предоставляет контекст группы рабочей нагрузки для сеанса.The user-defined function gives workload group context for the session. После определения членства в группе сеанс привязывается к группе рабочей нагрузки на все время его существования.After group membership is determined, the session is bound to the workload group for the lifetime of the session.

  • Если определяемая пользователем функция возвращает значение NULL, значение по умолчанию или имя несуществующей группы, то сеансу предоставляется контекст группы рабочей нагрузки по умолчанию.If the user-defined function returns NULL, default, or the name of non-existent group the session is given the default workload group context. Кроме того, сеансу предоставляется контекст по умолчанию, если функция по какой-либо причине завершается неуспешно.The session is also given the default context if the function fails for any reason.

  • Функция должна быть определена на уровне сервера (базы данных master).The function should be defined with server scope (master database).

  • Обозначение определяемой пользователем функции-классификатора вступает в силу только после выполнения команды ALTER RESOURCE GOVERNOR RECONFIGURE.The classifier user-defined function designation only takes effect after ALTER RESOURCE GOVERNOR RECONFIGURE is executed.

  • Одновременно в качестве классифицирующей функции может быть обозначена только одна определяемая пользователем функция.Only one user-defined function can be designated as a classifier at a time.

  • Определяемую пользователем функцию-классификатор можно удалить или изменить только после снятия с нее статуса «classifier».The classifier user-defined function cannot be dropped or altered unless its classifier status is removed.

  • В отсутствие определяемой пользователем функции-классификатора все сеансы классифицируются в группу по умолчанию.In the absence of a classifier user-defined function, all sessions are classified into the default group.

  • Группа рабочей нагрузки, возвращенная классифицирующей функцией, выходит за пределы ограничений на привязку к схеме.The workload group returned by the classifier function is outside the scope of the schema-binding restriction. Например, нельзя удалить таблицу, тогда как группу рабочей нагрузки удалить можно.For example, you cannot drop a table, but you can drop a workload group.

Важно!

Рекомендуется включить на сервере выделенное административное соединение (DAC).We recommend enabling the Dedicated Administrator Connection (DAC) on the server. Выделенное административное соединение не подлежит классификации регулятором ресурсов и может использоваться для наблюдения за неполадками классифицирующей функции и их устранения.The DAC is not subject to Resource Governor classification and can be used to monitor and troubleshoot a classifier function. Дополнительные сведения см. в разделе Диагностическое соединение для администраторов баз данных.For more information, see Diagnostic Connection for Database Administrators. Если выделенное административное соединение недоступно для устранения неполадок, другой вариант — перезапустить систему в однопользовательском режиме.If a DAC is not available for troubleshooting, the other option is to restart the system in single user mode. Хотя однопользовательский режим не подлежит классификации, он не дает возможности выполнить диагностику классификации регулятора ресурсов, если тот запущен.Although single user mode is not subject to classification, it does not give you the ability to diagnose Resource Governor classification while it is running.

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

В контексте регулятора ресурсов процесс входа в сеанс состоит из следующих этапов.In the context of Resource Governor, the login process for a session consists of the following steps:

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

  2. Выполнение триггера LOGON (происходит, только если в экземпляре есть триггеры входа).LOGON trigger execution (Occurs only if logon triggers exist in the instance.)

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

После запуска сеанса классификатор регулятора ресурсов назначает этот сеанс группе рабочей нагрузки, и этот сеанс должен функционировать с использованием ресурсов, назначенных этой группе рабочей нагрузки.When classification starts, Resource Governor executes the classifier function and uses the value returned by the function to send requests to the appropriate workload group.

Примечание

Сведения о выполнении классифицирующей функции и триггеров LOGON содержатся в представлениях sys.dm_exec_sessions и sys.dm_exec_requests.Information about the execution of the classifier function and LOGON triggers is exposed in sys.dm_exec_sessions and sys.dm_exec_requests.

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

Описание задачиTask Description РазделTopic
Описывает, как создать и проверить определяемую пользователем функцию-классификатор.Describes how to create and test a classifier user-defined function. Создание и тестирование пользовательской функции-классификатораCreate and Test a Classifier User-Defined Function

См. также:See Also

регулятор ресурсов Resource Governor
Активация регулятора ресурсов Enable Resource Governor
Пул ресурсов регулятора ресурсов Resource Governor Resource Pool
Группа рабочей нагрузки регулятора ресурсов Resource Governor Workload Group
Настройка регулятора ресурсов с помощью шаблона Configure Resource Governor Using a Template
Просмотр свойств регулятора ресурсовView Resource Governor Properties