DDL регулятора ресурсов и системные представления

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

  • Команды DDL, в том числе команды для групп рабочей нагрузки, пулов ресурсов и регулятора ресурсов.

  • Представления регулятора ресурсов, в том числе представления каталога и динамические административные представления.

  • Системные представления SQL Server, обновленные с целью поддержки регулятора ресурсов.

  • Обновления классов событий SQL Server, а также новые классы событий с поддержкой регулятора ресурсов.

Инструкции DDL

В регуляторе ресурсов предусмотрено несколько команд DDL, позволяющих настраивать все аспекты сеанса работы с регулятором ресурсов. Такими командами являются CREATE, ALTER и DROP для групп рабочей нагрузки и пулов ресурсов. Кроме того, для изменения конфигурации можно использовать инструкцию ALTER RESOURCE GOVERNOR RECONFIGURE.

При работе с командами DDL регулятора ресурсов следует помнить о следующих особенностях.

  • Инструкции CREATE, ALTER и DROP применяются к хранимым метаданным и являются транзакционными. Однако сразу после выполнения этих инструкций изменения не вступают в силу. Чтобы применить внесенные изменения, необходимо выполнить инструкцию ALTER RESOURCE GOVERNOR RECONFIGURE.

  • Чтобы предотвратить одновременное изменение одной и той же конфигурации несколькими пользователями, предварительные инструкции можно сделать частью транзакции. Для этого с инструкциями используются выражения BEGIN TRANSACTION и COMMIT TRANSACTION. Все блокировки, установленные для какой-либо транзакции, видны в представлении sys.dm_tran_locks, и соответствующая транзакция при необходимости может быть остановлена.

    ПримечаниеПримечание

    При работе с инструкциями DDL регулятора ресурсов использовать транзакционный синтаксис необязательно, но настоятельно рекомендуется. Однако инструкции ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVENOR RECONFIGURE и ALTER RESOURCE GOVERNOR RESET STATISTICS не могут быть частью пользовательской транзакции.

  • Инструкция ALTER…RECONFIGURE загружает метаданные в память и может завершиться ошибкой. Откат этой инструкции невозможен. Если выполнение инструкции завершается ошибкой, изменения метаданных не копируются в память. Если выполнение инструкции завершено успешно, изменения вступают в силу. Инструкция ALTER…RECONFIGURE не является транзакционной, и откат изменений невозможен.

Команды пулов ресурсов

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

Инструкция DDL

Описание

CREATE RESOURCE POOL

Создает пул ресурсов.

ALTER RESOURCE POOL

Изменяет конфигурацию пула ресурсов. Эта инструкция записывает изменения в хранимые метаданные конфигурации. После выполнения этой инструкции необходимо выполнить инструкцию ALTER RESOURCE GOVERNOR для записи метаданных в конфигурацию, хранимую в памяти.

DROP RESOURCE POOL

Удаляет пул ресурсов.

Регулятор ресурсов имеет четыре параметра, позволяющих настроить пул ресурсов. Они перечислены ниже.

  • Минимальный и максимальный процент использования ЦП.

  • Минимальный и максимальный процент использования памяти.

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

Команды группы рабочей нагрузки

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

Команда DDL

Описание

CREATE WORKLOAD GROUP

Создает группу рабочей нагрузки и связывает ее с пулом ресурсов.

ALTER WORKLOAD GROUP

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

DROP WORKLOAD GROUP

Удаляет группу рабочей нагрузки.

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

  • Максимальный объем памяти для запроса.

  • Максимальный процент использования ЦП для обработки запроса.

  • Время ожидания ресурса для запроса.

  • Относительная важность запроса.

  • Максимальное число запросов для группы рабочей нагрузки.

  • Пул ресурсов, в котором находится группа рабочей нагрузки.

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

Команды регулятора ресурсов

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

Команда DDL

Описание

ALTER RESOURCE GOVERNOR

Применяет изменения конфигурации, заданные командой ALTER, включает или отключает регулятор ресурсов, регистрирует функцию-классификатор, сбрасывает счетчики статистики.

Инструкция ALTER RESOURCE GOVERNOR применяется для следующих целей.

  • Применение изменений конфигурации, указанных при вызове инструкций ALTER WORKLOAD GROUP или ALTER RESOURCE POOL.

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

  • Регистрация функции для классификации запросов.

  • Сброс статистических показателей для всех групп рабочей нагрузки и пулов ресурсов.

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

Представления регулятора ресурсов

Следующие представления каталога и динамические административные представления являются специфичными для регулятора ресурсов.

Представления каталога

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

Имя

Описание

sys.resource_governor_configuration

Возвращает хранимое состояние регулятора ресурсов.

sys.resource_governor_resource_pools

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

sys.resource_governor_workload_groups

Возвращает хранимую конфигурацию группы рабочей нагрузки.

Динамические административные представления

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

Имя

Описание

sys.dm_resource_governor_workload_groups

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

sys.dm_resource_governor_resource_pools

Возвращает информацию о текущем состоянии пула ресурсов, текущую конфигурацию пула ресурсов и статистику пула ресурсов.

sys.dm_resource_governor_configuration

Возвращает строку, в которой содержится актуальное состояние конфигурации, хранимой в памяти, для регулятора ресурсов.

Представления SQL Server

Некоторые системные представления SQL Server были изменены и теперь предоставляют сведения о регуляторе ресурсов.

Динамические административные представления

Динамические административные представления SQL Server описаны в следующей таблице.

Имя

Описание

sys.dm_exec_query_memory_grants.

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

  • group_id

  • pool_id

  • is_small

  • ideal_memory_kb

sys.dm_exec_query_resource_semaphores

Возвращает сведения о текущем состоянии семафора запроса-ресурса. Представление sys.dm_exec_query_resource_semaphores выдает общее состояние памяти при выполнении запроса и позволяет определить, доступен ли системе необходимый объем памяти.

Для регулятора ресурсов добавляется следующий столбец:

  • pool_id

sys.dm_exec_sessions

Возвращает по одной строке на каждый прошедший проверку подлинности сеанс, подключенный к SQL Server.

Для регулятора ресурсов добавляется следующий столбец:

  • group_id

sys.dm_exec_requests

Возвращает сведения о каждом из запросов, выполняющихся в SQL Server.

Для регулятора ресурсов добавляется следующий столбец:

  • group_id

sys.dm_exec_cached_plans

Возвращает строку для каждого плана запроса, кэшируемого SQL Server для более быстрого выполнения запросов.

Для регулятора ресурсов добавляется следующий столбец:

  • pool_id

sys.dm_os_memory_brokers

Внутреннее распределение памяти в SQL Server осуществляется с помощью диспетчера памяти SQL Server.

Для регулятора ресурсов добавлены следующие столбцы:

  • pool_id

  • allocations_kb_per_sec

  • predicated_allocations_kb

  • overall_limit_kb

sys.dm_os_wait_stats

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

Руководство по классам событий SQL Server

Для поддержки регулятора ресурсов были обновлены некоторые классы событий SQL Server и добавлены некоторые новые классы событий.

имя;

Описание

Класс событий CPU Threshold Exceeded

Этот класс событий указывает, что регулятор ресурсов обнаружил запрос, превышающий заданное для REQUEST_MAX_CPU_TIME_SEC пороговое значение загрузки ЦП.

Класс событий PreConnect:Starting

Этот класс событий указывает на запуск триггера LOGON или классифицирующей функции регулятора ресурсов.

PreConnect:Completed, класс событий

Этот класс событий указывает на завершение выполнения триггера LOGON или классифицирующей функции регулятора ресурсов.