Návod: Příklady konfigurace Správce prostředků a osvědčené postupy
platí pro:SQL Server
azure SQL Managed Instance
Tento článek obsahuje příklady návodů, které vám pomůžou nakonfigurovat správce prostředků a ověřit, že vaše konfigurace funguje podle očekávání. Začíná jednoduchým příkladem a postupuje na složitější.
Tento článek obsahuje také příklady dotazů správce prostředků monitorování a seznam osvědčených postupů pro správce prostředků.
Všechny příklady předpokládají, že správce prostředků je zpočátku zakázaný a používá výchozí nastavení a že neexistují žádné uživatelem definované fondy zdrojů, skupiny úloh a funkce klasifikátoru.
Poznámka
Pokud chcete upravit konfiguraci správce prostředků ve službě Azure SQL Managed Instance, musíte být v kontextu databáze master
na primární replice.
Úprava výchozí skupiny
Tento příklad používá správce prostředků k omezení maximální velikosti grantu paměti pro všechny dotazy uživatelů. To se provádí snížením nastavení REQUEST_MAX_MEMORY_GRANT_PERCENT
pro skupinu úloh default
z výchozích 25% na 10%. Příklad nepoužívá funkci klasifikátoru . To znamená, že zpracování přihlášení není ovlivněno a všechny uživatelské relace budou dál klasifikovány ve skupině úloh default
.
Pokud dotazy čekají na paměť, může být potřeba omezit velikost přidělení paměti, protože jiné dotazy si rezervují příliš mnoho paměti. Další informace najdete v tématu Řešení potíží s nízkým výkonem nebo nedostatkem paměti způsobených udělením paměti v sql Serveru.
Upravte výchozí skupinu úloh.
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10);
Povolte správce prostředků, aby se naše konfigurace stala efektivní.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Ověřte nové nastavení, včetně nové maximální velikosti grantu paměti.
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;
Pokud se chcete vrátit k počáteční konfiguraci, spusťte následující skript:
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 25); ALTER RESOURCE GOVERNOR RECONFIGURE; ALTER RESOURCE GOVERNOR DISABLE;
Použití uživatelem definované skupiny úloh
Tento příklad používá správce prostředků k zajištění toho, aby se všechny požadavky na relace s konkrétním názvem aplikace nespustily se stupněm paralelismu (DOP) vyšším než čtyři. To se provádí klasifikací relací do skupiny úloh s nastavením MAX_DOP
nastaveným na 4.
Další informace o konfiguraci maximálního stupně paralelismu naleznete v tématu Konfigurace serveru: maximální stupeň paralelismu.
Vytvořte skupinu úloh, která omezuje DOP. Skupina používá fond prostředků
default
, protože chceme omezit DOP pro konkrétní aplikaci, ale nechceme rezervovat ani omezovat prostředky procesoru, paměti nebo vstupně-výstupních operací.CREATE WORKLOAD GROUP limit_dop WITH ( MAX_DOP = 4 ) USING [default];
Vytvořte funkci klasifikátoru. Funkce používá integrovanou funkci APP_NAME() k určení názvu aplikace zadaného v připojovacím řetězci klienta. Pokud je název aplikace nastavený na
limited_dop_application
, vrátí funkce název skupiny úloh, která omezuje DOP. V opačném případě funkce vrátídefault
jako název skupiny úloh.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
Upravte konfiguraci správce prostředků, aby byla konfigurace efektivní, a povolte správce prostředků.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Proveďte dotaz sys.resource_governor_configuration k ověření, zda je správce prostředků povolen a používá námi vytvořenou funkci klasifikátoru.
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
Ověřte, že relace s konkrétním názvem aplikace jsou klasifikovány do skupiny úloh
limit_dop
, zatímco ostatní relace se budou dál klasifikovat vdefault
skupině úloh. K vrácení názvu aplikace a názvu skupiny úloh pro aktuální relaci použijeme dotaz, který používá sys.dm_exec_sessions a sys.resource_governor_workload_groups systémová zobrazení.V aplikaci SQL Server Management Studio (SSMS) vyberte v hlavní nabídce Soubor , Nový, Dotaz databázového enginu.
V dialogovém okně Připojit k databázovému stroji zadejte stejnou instanci databázového stroje, ve které jste vytvořili skupinu úloh a funkci klasifikátoru. Vyberte kartu Další parametry připojení a zadejte
App=limited_dop_application
. SSMS tak při připojování k instanci používálimited_dop_application
jako název aplikace.Vyberte Připojit a otevřete nové připojení.
Ve stejném okně dotazu spusťte následující dotaz:
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;
Měli byste vidět následující výstup, který ukazuje, že relace byla klasifikována do skupiny úloh
limit_dop
s maximálním nastavením DOP na čtyři:application_name workload_group_name max_dop ---------------- ------------------- ------- limited_dop_application limit_dop 4
Opakujte výše uvedené kroky, ale nezadávejte nic do pole na kartě Další parametry připojení. Výstup se změní a zobrazí výchozí název aplikace SSMS a skupinu úloh
default
s výchozí hodnotou0
pro maximální hodnotu DOP.application_name workload_group_name max_dop ---------------- ------------------- ------- Microsoft SQL Server Management Studio - Query default 0
Pokud se chcete vrátit k počáteční konfiguraci tohoto příkladu, odpojte všechny relace pomocí skupiny úloh
limit_dop
a spusťte následující skript T-SQL. Skript obsahuje následující kroky:- Zakázat správce prostředků, aby bylo možné funkci klasifikátoru odstranit.
- Odstraňte skupinu úloh. To vyžaduje, aby tuto skupinu úloh nepoužívala žádná instance.
- Překonfigurujte správce prostředků tak, aby znovu načítá efektivní konfiguraci bez funkce klasifikátoru a skupiny úloh. To umožňuje správce prostředků.
- Zakažte správce prostředků a vraťte se k počáteční konfiguraci.
/* 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;
Použití více fondů zdrojů a skupin úloh
Tento příklad používá správu prostředků k rozřazení relací z aplikace pro zpracování objednávek do různých skupin pracovní zátěže a fondů zdrojů v závislosti na denní době. Tato konfigurace přiděluje aplikaci více prostředků během doby zpracování ve špičce a omezuje její prostředky mimo pracovní dobu. Příklad předpokládá, že aplikace nepoužívá dlouhotrvající relace.
Vytvořte dva fondy zdrojů pro zpracování ve špičce a mimo špičkový čas.
- Fond
peak_hours_pool
zaručuje (rezervuje) minimálně 20% průměrné šířky pásma procesoru díkyMIN_CPU_PERCENT
a neomezuje šířku pásma procesoru tím, že nastavíMAX_CPU_PERCENT
na100
. - Fond
off_hours_pool
nezarezervuje šířku pásma CPU nastavením hodnotyMIN_CPU_PERCENT
na0
, ale omezuje šířku pásma CPU na 50%, když je při zatížení procesoru hodnotaMAX_CPU_PERCENT
nastavena na50
.
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 );
Fondy zdrojů můžou rezervovat a omezit systémové prostředky, jako jsou procesor, paměť a vstupně-výstupní operace. Další informace naleznete v tématu CREATE RESOURCE POOL.
- Fond
Vytvořte dvě skupiny úloh, jednu pro každý fond zdrojů.
-
peak_hours_group
neomezuje počet souběžných požadavků nastavenímGROUP_MAX_REQUESTS
na výchozí hodnotu0
. -
off_hours_group
omezuje počet souběžných požadavků napříč všemi relacemi klasifikovanými do této skupiny nastavenímGROUP_MAX_REQUESTS
na200
.
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;
Skupiny úloh definují zásady, jako je maximální počet požadavků, maximální stupeň paralelismu a maximální velikost přidělení paměti. Další informace o tématu CREATE WORKLOAD GROUPnaleznete.
-
Vytvořte a naplňte tabulku, která definuje časové intervaly špičky a mimo špičku.
- Každý řádek v tabulce definuje počáteční a koncový čas intervalu a název skupiny úloh, která se má použít během intervalu.
- Počáteční a koncový čas každého intervalu je inkluzivní.
- Tabulka se vytvoří v
master
databázi, aby ji bylo možné použít ve funkci klasifikátoru vázaného schématem.
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');
Vytvořte funkci klasifikátoru.
- Očekává se, že data v tabulce budou mít pro každý daný den jeden odpovídající řádek. Pokud data porušují toto pravidlo, funkce vrátí
default
jako název skupiny úloh. - Následující ukázková funkce také vrátí
default
pokud název aplikace vrácený předdefinované funkce APP_NAME() je cokoli jiného než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
- Očekává se, že data v tabulce budou mít pro každý daný den jeden odpovídající řádek. Pokud data porušují toto pravidlo, funkce vrátí
Tento krok je volitelný. Místo vytvoření tabulky v databázi
master
můžete pomocí konstruktoru s hodnotou tabulky definovat časové intervaly přímo ve funkci klasifikátoru. Tento postup se doporučuje, když je velikost dat malá a kritéria klasifikátoru se často nemění. Tady je příklad stejného klasifikátoru, který používá konstruktora, který vrací hodnoty tabulky, místo tabulky vmaster
.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
Upravte konfiguraci správce prostředků, aby byla konfigurace efektivní, a povolte správce prostředků.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Ověřte, že správce prostředků je povolený, že používá určenou klasifikační funkci a že tato funkce funguje podle očekávání, a to pomocí podobných kroků jako v předchozím příkladu . Tentokrát zadáme hodnotu
App=order_processing
na kartě Další parametry připojení v dialogovém okně pro připojení SSMS tak, aby odpovídal názvu aplikace ve funkci klasifikátoru. Spuštěním následujícího dotazu určete název aplikace, skupinu úloh, fond prostředků a rezervaci procesoru a limit pro aktuální relaci: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;
Výsledky závisí na denním čase. Pokud je například aktuální čas 14:30, výsledek ukazuje, že se použijí
peak_hours_group
apeak_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
Pokud se chcete vrátit k počáteční konfiguraci tohoto příkladu, odpojte všechny relace pomocí skupin úloh
peak_hours_group
aoff_hours_group
a spusťte následující skript T-SQL. Skript obsahuje následující kroky:- Zakažte správce prostředků, aby bylo možné funkci klasifikátoru vynechat.
- Odstraňte skupiny úloh. Aby žádné relace nepoužívaly tyto skupiny úloh, je to vyžadováno.
- Jakmile vyřadíte skupiny úloh, smažte fondy zdrojů.
- Překonfigurujte správce prostředků tak, aby znovu načítá efektivní konfiguraci bez funkce klasifikátoru a skupin úloh definovaných uživatelem a fondů prostředků. Toto aktivuje správce prostředků.
- Zakažte správce prostředků a vraťte se k počáteční konfiguraci.
/* 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;
Monitorování správce prostředků pomocí systémových zobrazení
Ukázkové dotazy v této části ukazují, jak můžete monitorovat statistiky a chování runtime Resource Governoru.
Statistiky správce prostředků jsou kumulativní od posledního restartování serveru. Pokud potřebujete shromažďovat statistiky od určitého času, můžete statistiky resetovat pomocí příkazu ALTER RESOURCE GOVERNOR RESET STATISTICS
.
Statistiky modulu runtime fondu zdrojů
U každého fondu zdrojů správce prostředků sleduje využití procesoru a paměti, události nedostatku paměti, granty paměti, vstupně-výstupní operace a další statistiky. Další informace naleznete v tématu sys.dm_resource_governor_resource_pools.
Následující dotaz vrátí podmnožinu dostupných statistik pro všechny fondy zdrojů:
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;
Statistika runtime skupiny pracovního zatížení
Pro každou skupinu úloh správce prostředků sleduje čas procesoru, počet požadavků, blokované úlohy, dobu čekání na uzamčení, optimalizaci dotazů a další statistiky. Další informace najdete v tématu sys.resource_governor_workload_groups.
Následující dotaz vrátí podmnožinu dostupných statistik pro všechny skupiny úloh:
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
Agregace relací podle skupin úloh a atributů relací
Následující dotaz vrátí rozložení relací mezi různými skupinami pracovního zatížení a souhrnné statistiky relací pro každou skupinu pracovního zatížení.
Vysoký počet relací se stavem preconnect
může znamenat zpomalení při provádění klasifikátoru.
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;
Agregace požadavků podle skupin úloh a atributů požadavků
Následující dotaz vrátí distribuci požadavků napříč skupinami úloh a agregační statistiky požadavků pro každou skupinu úloh:
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;
Osvědčené postupy pro správce prostředků
- Nakonfigurujte vyhrazené připojení správce (DAC) a zjistěte, jak ho používat. Další informace naleznete v tématu Diagnostické připojení pro správce databáze. Pokud vaše konfigurace správce prostředků nefunguje správně, můžete ji pomocí DAC vyřešit nebo zakázat správce prostředků.
- Při konfiguraci fondů zdrojů buďte opatrní při zadávání velkých hodnot pro
MIN_CPU_PERCENT
,MIN_MEMORY_PERCENT
aMIN_IOPS_PER_VOLUME
. Nastavení konfiguraceMIN
rezervuje prostředky pro fond zdrojů a znepřístupňuje je ostatním fondům zdrojů, včetně fondudefault
. Další informace najdete v tématu Vytvoření fondu zdrojů. - Funkce klasifikátoru rozšiřuje dobu zpracování přihlášení. Vyhněte se složitým logikám a dlouhotrvajícím dotazům nebo dotazům náročným na prostředky v klasifikátoru, zejména pokud dotazy používají velké tabulky. Příliš složitá funkce může způsobit zpoždění přihlášení nebo vypršení časového limitu připojení.
- Pokud potřebujete použít tabulku v klasifikátoru a tabulka je malá a většinou statická, zvažte použití konstruktoru hodnotné tabulky, jak je znázorněno v příkladu dříve v tomto článku.
- Nepoužívejte často upravenou tabulku v klasifikátoru. Tím se zvyšuje riziko blokování, které může zpozdit přihlášení a způsobit vypršení časového limitu připojení. Následující alternativní řešení můžou riziko zmírnit, ale mají nevýhodu, včetně rizika nesprávné klasifikace:
- Zvažte použití nápovědy
NOLOCK
tabulky nebo ekvivalentní nápovědyREADUNCOMMITTED
. Další informace naleznete v tématu READUNCOMMITTED. - Zvažte použití nastavení
LOCK_TIMEOUT
na začátku funkce klasifikátoru a jeho nastavení na nízkou hodnotu, například 1 000 milisekund. Další informace naleznete v tématu SET LOCK_TIMEOUT.
- Zvažte použití nápovědy
- Funkci klasifikátoru nemůžete upravit, když se na ni odkazuje v konfiguraci správce prostředků. Konfiguraci však můžete upravit tak, aby používala jinou funkci klasifikátoru. Pokud chcete provést změny klasifikátoru, zvažte vytvoření dvojice funkcí klasifikátoru. Můžete například vytvořit
dbo.rg_classifier_A()
adbo.rg_classifier_B()
. Pokud je potřeba změnit logiku klasifikátoru, postupujte takto:- Pomocí příkazu ALTER FUNCTION proveďte změny ve funkci , která není aktuálně používána v konfiguraci správce prostředků.
- Pomocí příkazu ALTER RESOURCE GOVERNOR aktivujte upravený klasifikátor a pak překonfigurujte správce prostředků. Například:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier_B); ALTER RESOURCE GOVERNOR RECONFIGURE;
- Pokud je změna znovu nutná, použijte stejný postup pomocí druhé funkce (
dbo.rg_classifier_A()
).
- Konfigurace správce prostředků je uložená v databázi
master
. Nezapomeňte pravidelně zálohovatmaster
a vědět, jak ho obnovit. Další informace naleznete v tématu Zálohování a obnovení: Systémové databáze. Vzhledem k tomu, že obnovenímaster
má určitá omezení, doporučujeme uložit kopii konfiguračních skriptů správce prostředků samostatně. Konfiguraci správce prostředků můžete znovu vytvořit ze skriptů, pokud je potřeba znovu vytvořitmaster
databázi.