Självstudie: Konfigurationsexempel och metodtips för Resource Governor
gäller för:SQL Server
Azure SQL Managed Instance
Den här artikeln innehåller genomgångsexempel som hjälper dig att konfigurera resursguvernören och verifiera att konfigurationen fungerar som förväntat. Det börjar med ett enkelt exempel och går vidare till de mer komplexa.
Artikeln innehåller även exempel på resursguvernör övervakningsfrågor och en lista över resursguvernör bästa praxis.
Alla exempel förutsätter att resursguvernören till en början är inaktiverad och använder standardinställningar och att det inte finns några användardefinierade resurspooler, arbetsbelastningsgrupper och klassificerare.
Not
Om du vill ändra konfigurationen av resursguvernören i Azure SQL Managed Instance måste du vara i kontexten för den master
databasen på den primära repliken.
Ändra standardgruppen
I det här exemplet används resursguvernör för att begränsa den maximala storleken på ett minnesbidrag för alla användarfrågor. Detta görs genom att minska inställningen för REQUEST_MAX_MEMORY_GRANT_PERCENT
för arbetsbelastningsgruppen default
från standardvärdet 25% till 10%. I exemplet används inte en klassificerarfunktion. Det innebär att inloggningsbearbetningen inte påverkas och att alla användarsessioner fortsätter att klassificeras i arbetsbelastningsgruppen default
.
Du kan behöva begränsa storleken på minnestilldelningar om frågeställningar väntar på minne eftersom andra frågeställningar reserverade för mycket minne. Mer information finns i Felsöka problem med långsamma prestanda eller minnesbrist som orsakas av minnestillskott i SQL Server.
Ändra standardarbetsbelastningsgruppen.
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10);
Aktivera resursguvernör för att göra konfigurationen effektiv.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Verifiera den nya inställningen, inklusive den nya maximala storleken på ett minnesbidrag.
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;
Om du vill återgå till den inledande konfigurationen kör du följande skript:
ALTER WORKLOAD GROUP [default] WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 25); ALTER RESOURCE GOVERNOR RECONFIGURE; ALTER RESOURCE GOVERNOR DISABLE;
Använda en användardefinierad arbetsbelastningsgrupp
I det här exemplet används resursguvernör för att säkerställa att alla begäranden på sessioner med ett specifikt programnamn inte körs med graden av parallellitet (DOP) högre än fyra. Detta görs genom att klassificera sessioner i en arbetsbelastningsgrupp med inställningen MAX_DOP
inställd på 4.
Mer information om hur du konfigurerar den maximala graden av parallellitet finns i Server-konfiguration: maximal grad av parallellitet.
Skapa en arbetsbelastningsgrupp som begränsar DOP. Gruppen använder
default
resurspool eftersom vi bara vill begränsa DOP för ett visst program, men inte reservera eller begränsa PROCESSOR-, minnes- eller I/O-resurser.CREATE WORKLOAD GROUP limit_dop WITH ( MAX_DOP = 4 ) USING [default];
Skapa klassificerarfunktionen. Funktionen använder den inbyggda funktionen APP_NAME() för att fastställa programnamnet som anges i klientanslutningssträngen. Om programnamnet är inställt på
limited_dop_application
returnerar funktionen namnet på den arbetsbelastningsgrupp som begränsar DOP. Annars returnerar funktionendefault
som namnet på arbetsbelastningsgruppen.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
Ändra konfigurationen av resursguvernören för att göra konfigurationen effektiv och aktivera resursguvernör.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Fråga sys.resource_governor_configuration för att verifiera att resursguvernören är aktiverad och använder den klassificerarfunktion som vi skapade.
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
Kontrollera att sessioner med ett specifikt programnamn klassificeras i arbetsbelastningsgruppen
limit_dop
, medan andra sessioner fortsätter att klassificeras idefault
arbetsbelastningsgrupp. Vi använder en fråga som använder sys.dm_exec_sessions och sys.resource_governor_workload_groups systemvyer för att returnera programnamnet och arbetsbelastningsgruppens namn för den aktuella sessionen.I SQL Server Management Studio (SSMS) väljer du File på huvudmenyn, New, Database Engine Query.
I dialogrutan Anslut till databasmotor anger du samma databasmotorinstans där du skapade arbetsbelastningsgruppen och klassificerarfunktionen. Välj fliken Ytterligare anslutningsparametrar och ange
App=limited_dop_application
. Detta gör att SSMS använderlimited_dop_application
som programnamn när du ansluter till instansen.Välj Anslut för att öppna en ny anslutning.
Kör följande fråga i samma frågefönster:
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;
Du bör se följande utdata som visar att sessionen klassificerades i
limit_dop
arbetsbelastningsgrupp med maximal DOP inställt på fyra:application_name workload_group_name max_dop ---------------- ------------------- ------- limited_dop_application limit_dop 4
Upprepa stegen ovan, men ange inget i rutan på fliken Ytterligare anslutningsparametrar. Utdata ändras, vilket visar standardnamnet för SSMS-programmet och
default
arbetsbelastningsgrupp med standardvärdet0
för maximal DOP.application_name workload_group_name max_dop ---------------- ------------------- ------- Microsoft SQL Server Management Studio - Query default 0
Om du vill återgå till den inledande konfigurationen av det här exemplet kopplar du från alla sessioner med hjälp av arbetsbelastningsgruppen
limit_dop
och kör följande T-SQL-skript. Skriptet innehåller följande steg:- Inaktivera resursguvernören så att klassificerarfunktionen kan tas bort.
- Ta bort arbetsbelastningsgruppen. Detta kräver att inga sessioner använder den här arbetsbelastningsgruppen.
- Konfigurera om resursstyrningen för att uppdatera den effektiva konfigurationen utan klassificerarfunktionen och arbetsbelastningsgruppen. Detta aktiverar resursguvernören.
- Inaktivera resursguvernören för att återgå till den inledande konfigurationen.
/* 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;
Använda flera resurspooler och arbetsbelastningsgrupper
I det här exemplet används resursguvernör för att klassificera sessioner från ett orderbearbetningsprogram i olika arbetsbelastningsgrupper och resurspooler beroende på tid på dagen. Den här konfigurationen allokerar fler resurser till programmet under perioder med hög bearbetning och begränsar dess resurser under lediga timmar. Exemplet förutsätter att programmet inte använder långvariga sessioner.
Skapa två resurspooler för bearbetning under rusningstider och icke-rusningstider.
- Den
peak_hours_pool
poolen garanterar (reserverar) minst 20% av genomsnittlig processorbandbredd viaMIN_CPU_PERCENT
och begränsar inte processorbandbredden genom att angeMAX_CPU_PERCENT
till100
. - Den
off_hours_pool
poolen reserverar inte någon processorbandbredd genom att angeMIN_CPU_PERCENT
till0
, men begränsar processorbandbredden till 50% när processorkonkurration förekommer genom att angeMAX_CPU_PERCENT
till50
.
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 );
Resurspooler kan reservera och begränsa systemresurser som CPU, minne och I/O. Mer information finns i CREATE RESOURCE POOL.
- Den
Skapa två arbetsbelastningsgrupper, en för varje resurspool.
-
peak_hours_group
begränsar inte antalet samtidiga begäranden genom att angeGROUP_MAX_REQUESTS
till standardvärdet för0
. -
off_hours_group
begränsar antalet samtidiga begäranden för alla sessioner som klassificeras i den här gruppen genom att angeGROUP_MAX_REQUESTS
till200
.
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;
Arbetsbelastningsgrupper definierar principer som det maximala antalet begäranden, den maximala graden av parallellitet och den maximala storleken för minnesbidrag. Mer information finns i CREATE WORKLOAD GROUP.
-
Skapa och fylla i en tabell som definierar tidsintervallen för hög och låg belastning.
- Varje rad i tabellen definierar start- och sluttiden för intervallet och namnet på den arbetsbelastningsgrupp som ska användas under intervallet.
- Start- och sluttiden för varje intervall är inkluderande.
- Tabellen skapas i databasen
master
så att den kan användas i en schemabunden klassificerare.
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');
Skapa klassificerarfunktionen.
- Data i tabellen förväntas ha en enda matchande rad för en viss tid på dagen. Om data bryter mot den regeln returnerar funktionen
default
som namnet på arbetsbelastningsgruppen. - Följande exempelfunktion returnerar också
default
om programnamnet som returneras av den inbyggda funktionen APP_NAME() är något annat änorder_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
- Data i tabellen förväntas ha en enda matchande rad för en viss tid på dagen. Om data bryter mot den regeln returnerar funktionen
Det här är ett valfritt steg. I stället för att skapa en tabell i
master
-databasen kan du använda en tabellvärdeskonstruktor för att definiera tidsintervallen direkt i klassificerarfunktionen. Detta är den rekommenderade metoden när datastorleken är liten och kriterierna för klassificerarens funktion inte ändras ofta. Här är ett exempel på samma klassificerare som använder en tabellvärdeskonstruktor i stället för en tabell imaster
.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
Ändra konfigurationen av resursguvernören för att göra konfigurationen effektiv och aktivera resursguvernör.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier); ALTER RESOURCE GOVERNOR RECONFIGURE;
Kontrollera att resursguvernören är aktiverad, använder den angivna klassificerarfunktionen och att klassificerarfunktionen fungerar som förväntat med hjälp av liknande steg som i föregående exempel. Den här gången anger vi
App=order_processing
på fliken Ytterligare anslutningsparametrar i dialogrutan SSMS Connect för att matcha programnamnet i klassificerarfunktionen. Kör följande fråga för att fastställa programnamnet, arbetsbelastningsgruppen, resurspoolen och cpu-reservationen och gränsen för den aktuella sessionen: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;
Resultatet beror på tid på dagen. Om den aktuella tiden till exempel är 14:30 visar resultatet att
peak_hours_group
ochpeak_hours_pool
används: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
Om du vill återgå till den inledande konfigurationen av det här exemplet kopplar du från alla sessioner med hjälp av arbetsbelastningsgrupperna
peak_hours_group
ochoff_hours_group
och kör följande T-SQL-skript. Skriptet innehåller följande steg:- Inaktivera resursguvernören så att klassificerarfunktionen kan tas bort.
- Släpp arbetsbelastningsgrupperna. Detta kräver att inga sessioner använder dessa arbetsbelastningsgrupper.
- När arbetsbelastningsgrupperna har tagits bort släpper du resurspoolerna.
- Konfigurera om resursguvernören för att läsa in den effektiva konfigurationen igen utan klassificerarfunktionen och användardefinierade arbetsbelastningsgrupper och resurspooler. Detta aktiverar resursguvernören.
- Inaktivera resursguvernören för att återgå till den inledande konfigurationen.
/* 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;
Övervaka resursguvernören med hjälp av systemvyer
Exempelfrågor i det här avsnittet visar hur du kan övervaka resursguvernörens körningsstatistik och beteende.
Statistik för resursguvernören är kumulativ sedan den senaste omstarten av servern. Om du behöver samla in statistik från en viss tidpunkt kan du återställa statistik med hjälp av ALTER RESOURCE GOVERNOR RESET STATISTICS
-instruktionen.
Driftstatistik för resursgrupp
För varje resurspool spårar resursguvernören processor- och minnesanvändning, out-of-memory-händelser, minnesbidrag, I/O och annan statistik. Mer information finns i sys.dm_resource_governor_resource_pools.
Följande fråga returnerar en delmängd av tillgänglig statistik för alla resurspooler:
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;
Arbetsbelastningsgruppens körningsstatistik
För varje arbetsbelastningsgrupp spårar resursguvernören cpu-tid, antalet begäranden, blockerade uppgifter, låsväntetid, frågeoptimeringar och annan statistik. Mer information finns i sys.resource_governor_workload_groups.
Följande fråga returnerar en delmängd av tillgänglig statistik för alla arbetsbelastningsgrupper:
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
Aggregera sessioner efter arbetsbelastningsgrupp och sessionsattribut
Följande fråga returnerar en distribution av sessioner mellan arbetsbelastningsgrupper och sammanställd sessionsstatistik för varje arbetsbelastningsgrupp.
Ett stort antal sessioner med preconnect
-statusen kan indikera långsam körning av klassificeraren.
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;
Aggregera begäranden efter arbetsbelastningsgrupp och begärandeattribut
Följande fråga returnerar en distribution av begäranden mellan arbetsbelastningsgrupper och sammanställd begärandestatistik för varje arbetsbelastningsgrupp:
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;
Metodtips för resursguvernör
- Konfigurera dedikerad administratörsanslutning (DAC) och lär dig hur du använder den. För mer information, se Diagnostikanslutning för databasadministratörer. Om konfigurationen av resursguvernören inte fungerar kan du använda DAC för att felsöka den eller inaktivera resursguvernören.
- När du konfigurerar resurspooler bör du vara försiktig med att ange stora värden för
MIN_CPU_PERCENT
,MIN_MEMORY_PERCENT
ochMIN_IOPS_PER_VOLUME
. EnMIN
konfigurationsinställning reserverar resurser för en resurspool och gör dem otillgängliga för andra resurspooler, inklusivedefault
-poolen. Mer information finns i Skapa en resurspool. - Funktionen klassificerare förlänger bearbetningstiden för inloggning. Undvik komplex logik och långvariga eller resursintensiva frågor i klassificeraren, särskilt om frågor använder stora tabeller. En alltför komplex funktion kan orsaka inloggningsfördröjningar eller tidsgränser för anslutning.
- Om du behöver använda en tabell i klassificeraren och tabellen är liten och mestadels statisk kan du överväga att använda en tabellvärdeskonstruktor i stället, vilket visas i ett exempel tidigare i den här artikeln.
- Undvik att använda en tabell som ofta ändras i klassificeraren. Det ökar risken för blockering som kan fördröja inloggningar och orsaka tidsgränser för anslutning. Följande lösningar kan minska risken, men de har nackdelar, inklusive risken för felaktig klassificering:
- Överväg att använda
NOLOCK
tabelltips eller motsvarandeREADUNCOMMITTED
tips. Mer information finns i READUNCOMMITTED. - Överväg att använda inställningen
LOCK_TIMEOUT
i början av klassificerarfunktionen och ange det till ett lågt värde, till exempel 1 000 millisekunder. Mer information finns i SET LOCK_TIMEOUT.
- Överväg att använda
- Du kan inte ändra en klassificerarfunktion medan den refereras i konfigurationen för resursguvernören. Du kan dock ändra konfigurationen så att den använder en annan klassificerare. Om du vill göra ändringar i klassificeraren bör du överväga att skapa ett par klassificerarfunktioner. Du kan till exempel skapa
dbo.rg_classifier_A()
ochdbo.rg_classifier_B()
. Följ dessa steg när du behöver ändra klassificeringslogik:- Använd instruktionen ALTER FUNCTION för att göra ändringarna i funktionen inte som för närvarande används i konfigurationen av resursguvernören.
- Använd instruktionen ALTER RESOURCE GOVERNOR för att göra den ändrade klassificeraren aktiv och konfigurera sedan om resursguvernören. Till exempel:
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier_B); ALTER RESOURCE GOVERNOR RECONFIGURE;
- Om en ändring behövs igen följer du samma steg med hjälp av den andra funktionen (
dbo.rg_classifier_A()
).
- Konfigurationen av resursguvernören lagras i
master
-databasen. Se till att regelbundet säkerhetskopieramaster
och vet hur du återställer den. Mer information finns i Säkerhetskopiera och återställa: Systemdatabaser. Eftersom det finns begränsningar när det gäller att återställamaster
rekommenderar vi att du även sparar en kopia av konfigurationsskripten för resource governor separat. Du kan återskapa konfigurationen av resursguvernören från skript ommaster
-databasen behöver återskapas.