Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо к:SQL Server
Управляемому экземпляру SQL Azure
В этой статье содержатся пошаговые примеры, помогающие настроить регулятор ресурсов и убедиться, что конфигурация работает должным образом. Оно начинается с простого примера и переходит к более сложным примерам.
В статье также приведены примеры запросов мониторинга регулятора ресурсов
Все примеры предполагают, что изначально регулятор ресурсов отключен и использует параметры по умолчанию, и что пользовательские пулы ресурсов, группы рабочей нагрузки и функции классификатора не существуют.
Заметка
Чтобы изменить конфигурацию регулятора ресурсов в Управляемом экземпляре SQL Azure, необходимо быть в контексте базы данных master
на первичной реплике.
Изменение группы по умолчанию
В этом примере используется регулятор ресурсов, чтобы ограничить максимальный размер предоставления памяти для всех запросов пользователей. Это достигается путем уменьшения настройки REQUEST_MAX_MEMORY_GRANT_PERCENT
для группы рабочих нагрузок default
с 25% по умолчанию до 10%. В этом примере не используется функция классификатора. Это означает, что обработка входа не затрагивается, и все сеансы пользователей продолжают классифицироваться в группе рабочих нагрузок default
.
You might need to limit the size of memory grants if queries are waiting for memory because other queries reserved too much memory. Дополнительные сведения см. в статье Устранение проблем с низкой производительностью или нехваткой памяти, вызванных предоставлением памяти вSQL Server.
Измените группу рабочей нагрузки по умолчанию.
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10);
Включите регулятор ресурсов, чтобы сделать конфигурацию эффективной.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Проверьте новый параметр, включая новый максимальный размер предоставления памяти.
SELECT group_id, wg.name AS workload_group_name, rp.name AS resource_pool_name, wg.request_max_memory_grant_percent_numeric AS request_max_memory_grant_percent, rp.max_memory_kb * wg.request_max_memory_grant_percent_numeric AS request_max_memory_grant_size_kb FROM sys.resource_governor_workload_groups AS wg INNER JOIN sys.dm_resource_governor_resource_pools AS rp ON wg.pool_id = rp.pool_id;
Чтобы вернуться к начальной конфигурации, выполните следующий сценарий:
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 25); ALTER RESOURCE GOVERNOR RECONFIGURE; ALTER RESOURCE GOVERNOR DISABLE;
Использование определяемой пользователем группы рабочей нагрузки
В этом примере используется регулятор ресурсов для обеспечения того, чтобы все запросы на сеансах с определенным именем приложения не выполнялись с степенью параллелизма (DOP) выше четырех. Это делается путем классификации сеансов в группу рабочей нагрузки с установленным значением MAX_DOP
, равным 4.
Дополнительные сведения о настройке максимальной степени параллелизма см. в разделе Server configuration: max degree of parallelism.
Create a workload group that limits DOP. Группа использует пул ресурсов
default
, так как мы хотим ограничить doP для определенного приложения, но не зарезервировать или ограничить ресурсы ЦП, памяти или ввода-вывода.CREATE WORKLOAD GROUP limit_dop WITH ( MAX_DOP = 4 ) USING [default];
Создайте функцию классификатора. Функция использует встроенную функцию APP_NAME() для определения имени приложения, указанного в строке подключения клиента. Если для имени приложения задано значение
limited_dop_application
, функция возвращает имя группы рабочей нагрузки, ограничивающей DOP. В противном случае функция возвращаетdefault
в качестве имени группы рабочей нагрузки.USE master; GO CREATE FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; IF APP_NAME() = N'limited_dop_application' SELECT @WorkloadGroupName = N'limit_dop'; RETURN @WorkloadGroupName; END; GO
Измените конфигурацию регулятора ресурсов, чтобы сделать конфигурацию эффективной и включить регулятор ресурсов.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Query sys.resource_governor_configuration to validate that resource governor is enabled and is using the classifier function we created.
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name, OBJECT_NAME(classifier_function_id) AS classifier_object_name, is_enabled FROM sys.resource_governor_configuration;
classifier_schema_name classifier_object_name is_enabled ---------------------- ---------------------- ---------- dbo rg_classifier 1
Убедитесь, что сеансы с определенным именем приложения классифицируются в группу рабочей нагрузки
limit_dop
, а другие сеансы продолжают классифицироваться в группе рабочей нагрузкиdefault
. Мы будем использовать запрос, использующий sys.dm_exec_sessions и sys.resource_governor_workload_groups системные представления для возврата имени приложения и имени группы рабочей нагрузки для текущего сеанса.In SQL Server Management Studio (SSMS), select File on the main menu, New, Database Engine Query.
В диалоговом окне Connect to Database Engine укажите тот же экземпляр ядра СУБД, где вы создали группу рабочей нагрузки и функцию классификатора. Перейдите на вкладку Дополнительные параметры подключения и введите
App=limited_dop_application
. This makes SSMS uselimited_dop_application
as the application name when connecting to the instance.Select Connect to open a new connection.
В том же окне запроса выполните следующий запрос:
SELECT s.program_name AS application_name, wg.name AS workload_group_name, wg.max_dop FROM sys.dm_exec_sessions AS s INNER JOIN sys.resource_governor_workload_groups AS wg ON s.group_id = wg.group_id WHERE s.session_id = @@SPID;
Вы увидите следующие выходные данные, показывающие, что сеанс был классифицирован в группу рабочих нагрузок
limit_dop
с максимальным значением DOP, равным четырем:application_name workload_group_name max_dop ---------------- ------------------- ------- limited_dop_application limit_dop 4
Повторите описанные выше шаги, но не введите ничего в поле на вкладке Дополнительные параметры подключения. Выходные изменения, показывающие имя приложения SSMS по умолчанию и группу рабочих нагрузок
default
с значением по умолчанию0
для максимального значения DOP.application_name workload_group_name max_dop ---------------- ------------------- ------- Microsoft SQL Server Management Studio - Query default 0
Чтобы вернуться к начальной конфигурации этого примера, отключите все сеансы с помощью группы рабочих нагрузок
limit_dop
и выполните следующий скрипт T-SQL. Сценарий включает следующие действия.- Отключите регулятор ресурсов, чтобы можно было удалить функцию классификатора.
- Drop the workload group. Это требует, чтобы никакие сеансы не использовали эту группу рабочих нагрузок.
- Перенастройка регулятора ресурсов для перезагрузки эффективной конфигурации без функции классификатора и группы рабочей нагрузки. This enables resource governor.
- Отключите регулятор ресурсов, чтобы вернуться к начальной конфигурации.
/* Disable resource governor so that the classifier function can be dropped. */ ALTER RESOURCE GOVERNOR DISABLE; ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL); DROP FUNCTION IF EXISTS dbo.rg_classifier; /* Drop the workload group. This requires that no sessions are using this workload group. */ DROP WORKLOAD GROUP limit_dop; /* Reconfigure resource governor to reload the effective configuration without the classifier function and the workload group. This enables resource governor. */ ALTER RESOURCE GOVERNOR RECONFIGURE; /* Disable resource governor to revert to the initial configuration. */ ALTER RESOURCE GOVERNOR DISABLE;
Использование нескольких пулов ресурсов и групп рабочей нагрузки
В этом примере используется регулятор ресурсов для классификации сеансов из приложения обработки заказов в разные группы рабочих нагрузок и пулы ресурсов в зависимости от времени суток. Эта конфигурация выделяет больше ресурсов приложению во время пиковой обработки и ограничивает ресурсы в нерабочее время. В примере предполагается, что приложение не использует длительные сеансы.
Создайте два пула ресурсов для пикового времени и внерабочего времени обработки.
- The
peak_hours_pool
pool guarantees (reserves) a minimum of 20% of average CPU bandwidth viaMIN_CPU_PERCENT
, and doesn't limit CPU bandwidth by settingMAX_CPU_PERCENT
to100
. - Пул
off_hours_pool
не резервирует пропускную способность ЦП, устанавливаяMIN_CPU_PERCENT
на0
, но ограничивает пропускную способность ЦП до 50% при возникновении конфликтов ЦП, устанавливаяMAX_CPU_PERCENT
на50
.
CREATE RESOURCE POOL peak_hours_pool WITH ( MIN_CPU_PERCENT = 20, MAX_CPU_PERCENT = 100 ); CREATE RESOURCE POOL off_hours_pool WITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 50 );
Пулы ресурсов могут резервировать и ограничивать системные ресурсы, такие как ЦП, память и ввод-вывод. Дополнительные сведения см. в разделе CREATE RESOURCE POOL.
- The
Создайте две группы рабочей нагрузки, по одному для каждого пула ресурсов соответственно.
- The
peak_hours_group
doesn't limit the number of concurrent requests by settingGROUP_MAX_REQUESTS
to the default value of0
. -
off_hours_group
ограничивает количество одновременных запросов во всех сеансах, классифицируемых в этой группе, установив дляGROUP_MAX_REQUESTS
значение200
.
CREATE WORKLOAD GROUP peak_hours_group WITH ( GROUP_MAX_REQUESTS = 0 ) USING peak_hours_pool; CREATE WORKLOAD GROUP off_hours_group WITH ( GROUP_MAX_REQUESTS = 200 ) USING off_hours_pool;
Группы рабочих нагрузок определяют такие политики, как максимальное количество запросов, максимальный уровень параллелизма и максимальный размер предоставления памяти. Дополнительные сведения см. в разделе CREATE WORKLOAD GROUP.
- The
Создайте и заполните таблицу, которая определяет пиковые и нерабочие интервалы времени.
- Каждая строка в таблице определяет время начала и окончания интервала, а также имя группы рабочей нагрузки, используемой в течение интервала.
- The start and end time of each interval is inclusive.
- Таблица создается в базе данных
master
, чтобы ее можно было использовать в функции классификатора с привязкой к схеме.
USE master; GO CREATE TABLE dbo.workload_interval ( workload_group_name sysname NOT NULL, start_time time(7) NOT NULL, end_time time(7) NOT NULL, CONSTRAINT pk_workload_interval PRIMARY KEY (start_time, workload_group_name), CONSTRAINT ak_workload_interval_1 UNIQUE (end_time, workload_group_name), CONSTRAINT ck_workload_interval_1 CHECK (start_time < end_time) ); GO INSERT INTO dbo.workload_interval VALUES (N'off_hours_group', '00:00', '06:29:59.9999999'), (N'peak_hours_group', '06:30', '18:29:59.9999999'), (N'off_hours_group', '18:30', '23:59:59.9999999');
Создайте функцию классификатора.
- Ожидается, что данные в таблице имеют одну соответствующую строку для любого заданного времени дня. Если данные нарушают это правило, функция возвращает
default
в качестве имени группы рабочей нагрузки. - В следующем примере функция также возвращает
default
, если имя приложения, возвращаемое встроенной функцией APP_NAME(), является что-либо, отличное отorder_processing
.
USE master; GO CREATE OR ALTER FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; SELECT @WorkloadGroupName = workload_group_name FROM dbo.workload_interval WHERE APP_NAME() = N'order_processing' AND CAST(GETDATE() AS time(7)) BETWEEN start_time AND end_time; IF @@ROWCOUNT > 1 SELECT @WorkloadGroupName = N'default'; RETURN @WorkloadGroupName; END; GO
- Ожидается, что данные в таблице имеют одну соответствующую строку для любого заданного времени дня. Если данные нарушают это правило, функция возвращает
Это необязательный шаг. Вместо создания таблицы в базе данных
master
можно использовать табличное значение конструктора для определения интервалов времени непосредственно в функции классификатора. Это рекомендуемый подход, если размер данных мал, и критерии функции классификатора часто не изменяются. Ниже приведен пример того же классификатора, который использует конструктор с табличным значением вместо таблицы вmaster
.USE master; GO CREATE OR ALTER FUNCTION dbo.rg_classifier() RETURNS sysname WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroupName sysname = N'default'; SELECT @WorkloadGroupName = workload_group_name FROM ( VALUES (CAST(N'off_hours_group' AS sysname), CAST('00:00' AS time(7)), CAST('06:29:59.9999999' AS time(7))), (CAST(N'peak_hours_group' AS sysname), CAST('06:30' AS time(7)), CAST('18:29:59.9999999' AS time(7))), (CAST(N'off_hours_group' AS sysname), CAST('18:30' AS time(7)), CAST('23:59:59.9999999'AS time(7))) ) AS wg (workload_group_name, start_time, end_time) WHERE APP_NAME() = N'order_processing' AND CAST(GETDATE() AS time(7)) BETWEEN start_time AND end_time; IF @@ROWCOUNT > 1 SELECT @WorkloadGroupName = N'default'; RETURN @WorkloadGroupName; END; GO
Измените конфигурацию регулятора ресурсов, чтобы сделать конфигурацию эффективной и включить регулятор ресурсов.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Убедитесь, что регулятор ресурсов включен, использует указанную функцию классификатора, и что функция классификатора работает должным образом, используя аналогичные шаги, как в предыдущем примере. На этот раз мы введем
App=order_processing
на вкладке Дополнительные параметры подключения в диалоговом окне подключения SSMS, чтобы соответствовать имени приложения в функции классификатора. Выполните следующий запрос, чтобы определить имя приложения, группу рабочей нагрузки, пул ресурсов и резервирование ЦП и ограничение текущего сеанса:SELECT s.program_name AS application_name, wg.name AS workload_group_name, wg.group_max_requests, rp.name AS resource_pool_name, rp.min_cpu_percent, rp.max_cpu_percent FROM sys.dm_exec_sessions AS s INNER JOIN sys.resource_governor_workload_groups AS wg ON s.group_id = wg.group_id INNER JOIN sys.resource_governor_resource_pools AS rp ON wg.pool_id = rp.pool_id WHERE s.session_id = @@SPID;
Результаты зависят от времени дня. Например, если текущее время равно 14:30, результат показывает, что используются
peak_hours_group
иpeak_hours_pool
:application_name workload_group_name group_max_requests resource_pool_name min_cpu_percent max_cpu_percent ----------------- -------------------- ------------------ ------------------- --------------- --------------- order_processing peak_hours_group 0 peak_hours_pool 20 100
Чтобы вернуться к начальной конфигурации этого примера, отключите все сеансы с помощью групп рабочих нагрузок
peak_hours_group
иoff_hours_group
и выполните следующий скрипт T-SQL. Сценарий включает следующие действия.- Отключите регулятор ресурсов, чтобы можно было удалить функцию классификатора.
- Drop the workload groups. This requires that no sessions are using these workload groups.
- После удаления групп рабочей нагрузки удалите пулы ресурсов.
- Перенастройка регулятора ресурсов для перезагрузки эффективной конфигурации без функции классификатора и определяемых пользователем групп рабочих нагрузок и пулов ресурсов. This enables resource governor.
- Отключите регулятор ресурсов, чтобы вернуться к начальной конфигурации.
/* Disable resource governor so that the classifier function can be dropped. */ ALTER RESOURCE GOVERNOR DISABLE; ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL); DROP FUNCTION IF EXISTS dbo.rg_classifier; DROP TABLE IF EXISTS dbo.workload_interval; /* Drop the workload groups. This requires that no sessions are using these workload groups. */ DROP WORKLOAD GROUP peak_hours_group; DROP WORKLOAD GROUP off_hours_group; /* Once the workload groups are dropped, drop the resource pools. */ DROP RESOURCE POOL peak_hours_pool; DROP RESOURCE POOL off_hours_pool; /* Reconfigure resource governor to reload the effective configuration without the classifier function and user-defined workload groups and resource pools. This enables resource governor. */ ALTER RESOURCE GOVERNOR RECONFIGURE; /* Disable resource governor to revert to the initial configuration. */ ALTER RESOURCE GOVERNOR DISABLE;
Использование системных представлений для мониторинга регулятора ресурсов
Примеры запросов в этом разделе показывают, как отслеживать статистику и поведение диспетчера ресурсов.
Статистика регулятора ресурсов является накопительной с момента последнего перезапуска сервера. If you need to collect statistics starting from a certain time, you can reset statistics using the ALTER RESOURCE GOVERNOR RESET STATISTICS
statement.
Resource pool runtime statistics
Для каждого пула ресурсов регулятор ресурсов отслеживает использование ЦП и памяти, события вне памяти, предоставление памяти, ввод-вывод и другую статистику. For more information, see sys.dm_resource_governor_resource_pools.
Следующий запрос возвращает подмножество доступной статистики для всех пулов ресурсов:
SELECT rp.pool_id,
rp.name AS resource_pool_name,
wg.workload_group_count,
rp.statistics_start_time,
rp.total_cpu_usage_ms,
rp.target_memory_kb,
rp.used_memory_kb,
rp.out_of_memory_count,
rp.active_memgrant_count,
rp.total_memgrant_count,
rp.total_memgrant_timeout_count,
rp.read_io_completed_total,
rp.write_io_completed_total,
rp.read_bytes_total,
rp.write_bytes_total,
rp.read_io_stall_total_ms,
rp.write_io_stall_total_ms
FROM sys.dm_resource_governor_resource_pools AS rp
OUTER APPLY (
SELECT COUNT(1) AS workload_group_count
FROM sys.dm_resource_governor_workload_groups AS wg
WHERE wg.pool_id = rp.pool_id
) AS wg;
Workload group runtime statistics
Для каждой группы рабочей нагрузки регулятор ресурсов отслеживает время ЦП, количество запросов, заблокированные задачи, время ожидания блокировки, оптимизацию запросов и другую статистику. Дополнительные сведения см. в sys.resource_governor_workload_groups.
Следующий запрос возвращает подмножество доступной статистики для всех групп рабочих нагрузок:
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
wg.statistics_start_time,
wg.total_request_count,
wg.total_cpu_usage_ms,
wg.blocked_task_count,
wg.total_lock_wait_time_ms,
wg.total_query_optimization_count,
wg.max_request_grant_memory_kb,
wg.active_parallel_thread_count,
wg.effective_max_dop,
wg.request_max_memory_grant_percent_numeric
FROM sys.dm_resource_governor_workload_groups AS wg
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
Агрегирование сеансов по группам рабочей нагрузки и атрибутам сеанса
Следующий запрос возвращает распределение сеансов между группами рабочей нагрузки и статистической статистикой сеансов для каждой группы рабочей нагрузки.
Большое количество сеансов с состоянием preconnect
может указывать на замедление выполнения классификатора.
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
s.program_name AS application_name,
s.login_name,
s.host_name,
s.status,
d.name AS database_name,
MIN(s.login_time) AS first_login_time,
MAX(s.login_time) AS last_login_time,
MAX(s.last_request_start_time) AS last_request_start_time,
COUNT(1) AS session_count
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
INNER JOIN sys.databases AS d
ON s.database_id = d.database_id
GROUP BY wg.name,
rp.name,
s.program_name,
s.login_name,
s.host_name,
s.status,
d.name;
Агрегирование запросов по группам рабочей нагрузки и атрибутам запроса
Следующий запрос возвращает распределение запросов между группами рабочей нагрузки и статистические статистические статистические данные запросов для каждой группы рабочей нагрузки:
SELECT wg.name AS workload_group_name,
rp.name AS resource_pool_name,
r.command,
r.status,
d.name AS database_name,
COUNT(1) AS request_count,
MIN(r.start_time) AS first_request_start_time,
MAX(r.start_time) AS last_request_start_time,
SUM(CAST(r.total_elapsed_time AS bigint)) AS total_elapsed_time_ms
FROM sys.dm_exec_requests AS r
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON r.group_id = wg.group_id
INNER JOIN sys.dm_resource_governor_resource_pools AS rp
ON wg.pool_id = rp.pool_id
INNER JOIN sys.databases AS d
ON r.database_id = d.database_id
GROUP BY wg.name,
rp.name,
r.command,
r.status,
d.name;
Рекомендации по управлению ресурсами
Настройте выделенное подключение администратора (DAC) и узнайте, как его использовать. Дополнительные сведения см. в разделе Диагностическое подключение для администраторов баз данных. Если конфигурация регулятора ресурсов дает сбои, вы можете использовать DAC для устранения неполадок или отключить регулятор ресурсов.
При настройке пулов ресурсов следует тщательно указывать большие значения для
MIN_CPU_PERCENT
,MIN_MEMORY_PERCENT
иMIN_IOPS_PER_VOLUME
. Параметр конфигурацииMIN
резервирует ресурсы для пула ресурсов и делает их недоступными для других пулов ресурсов, включая пулdefault
. Дополнительные сведения см. в статье Создание пула ресурсов.Функция классификатора расширяет время обработки входа. Избегайте сложных логики и длительных или ресурсоемких запросов в классификаторе, особенно если запросы используют большие таблицы. Слишком сложная функция может привести к задержкам входа или истечению времени ожидания подключения.
Если необходимо использовать таблицу в классификаторе, а таблица является небольшой и в основном статической, рассмотрите возможность использования табличного конструктора, как показано в примере выше в этой статье.
Избегайте использования часто измененной таблицы в классификаторе. Это повышает риск блокировки, которая может отложить входы и вызвать время ожидания подключения. The following workarounds can mitigate the risk, however they have downsides, including the risk of incorrect classification:
- Consider using the
NOLOCK
table hint, or the equivalentREADUNCOMMITTED
hint. Дополнительные сведения см. в READUNCOMMITTED. - Рекомендуется использовать параметр
LOCK_TIMEOUT
в начале функции классификатора, установив его на низкое значение, например 1000 миллисекундах. Дополнительные сведения см. в разделе SET LOCK_TIMEOUT.
- Consider using the
If you execute
ALTER RESOURCE GOVERNOR RECONFIGURE
after deleting an unused resource pool on a machine with a large amount of memory, the command might take a long time. If a classifier function is in effect before reconfiguration starts, new connection attempts made during that time might time out.If you delete an unused resource pool, we recommend that you reconfigure resource governor during a maintenance window or a period of low activity.
Вы не можете изменить функцию классификатора, пока она используется в конфигурации регулятора ресурсов. Однако можно изменить конфигурацию, чтобы использовать другую функцию классификатора. Если вы хотите внести изменения в классификатор, попробуйте создать пару функций классификатора. Например, можно создать
dbo.rg_classifier_A()
иdbo.rg_classifier_B()
. When a change to the classifier logic is needed, follow these steps:- Используйте инструкцию ALTER FUNCTION, чтобы внести изменения в функцию, которая не используется в конфигурации регулятора ресурсов в настоящее время.
- Используйте инструкцию ALTER RESOURCE GOVERNOR, чтобы активировать изменённый классификатор, а затем перенастройте регулятор ресурсов. Например:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier_B); ALTER RESOURCE GOVERNOR RECONFIGURE;
- Если изменение необходимо еще раз, выполните те же действия, что и другая функция (
dbo.rg_classifier_A()
).
Конфигурация регулятора ресурсов хранится в базе данных
master
. Обязательно периодически создайте резервную копиюmaster
и узнайте, как восстановить ее. Дополнительные сведения см. в разделе Резервное копирование и восстановление: системные базы данных. Так как существуют ограничения для восстановленияmaster
, рекомендуется также сохранить копию скриптов конфигурации регулятора ресурсов отдельно. Вы можете повторно создать конфигурацию регулятора ресурсов из скриптов, если необходимо перестроить базу данныхmaster
.