ALTER RESOURCE GOVERNOR (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Managed Instance
Met deze instructie worden de volgende resource governor-acties uitgevoerd:
- Resource governor in- of uitschakelen.
- Pas de configuratiewijzigingen toe die zijn opgegeven wanneer de
CREATE | ALTER | DROP WORKLOAD GROUP
ofCREATE | ALTER | DROP RESOURCE POOL
ofCREATE | ALTER | DROP EXTERNAL RESOURCE POOL
instructies worden uitgevoerd. - Configureer classificatie voor binnenkomende sessies.
- Stel de statistieken van de workloadgroep en resourcegroep opnieuw in.
- Stel de maximaal in de wachtrij geplaatste I/O-bewerkingen per schijfvolume in.
Transact-SQL syntaxisconventies
Syntaxis
ALTER RESOURCE GOVERNOR
{ RECONFIGURE
[ WITH
( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
[ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
)
]
| DISABLE
| RESET STATISTICS
}
[ ; ]
Argumenten
CONFIGUREREN
Wanneer resource governor niet is ingeschakeld, schakelt RECONFIGURE
resource governor in. Het inschakelen van resource governor heeft de volgende resultaten:
- De classificatiefunctie, indien aanwezig, wordt uitgevoerd voor nieuwe sessies, waarbij deze worden toegewezen aan workloadgroepen.
- De resourcereserveringen en limieten die zijn opgegeven in de configuratie van Resource Governor, worden gehonoreerd en afgedwongen.
- Aanvragen die bestonden voordat resource governor werd ingeschakeld, kunnen worden beïnvloed door configuratiewijzigingen die zijn aangebracht wanneer Resource Governor is ingeschakeld.
Wanneer resource governor is ingeschakeld, past RECONFIGURE
configuratiewijzigingen toe die zijn aangebracht door de CREATE | ALTER | DROP WORKLOAD GROUP
of CREATE | ALTER | DROP RESOURCE POOL
of CREATE | ALTER | DROP EXTERNAL RESOURCE POOL
instructies na het vorige gebruik van RECONFIGURE
of na de laatste herstart van database-engine.
Belangrijk
ALTER RESOURCE GOVERNOR RECONFIGURE
moet worden uitgevoerd om configuratiewijzigingen van resource governor van kracht te laten worden.
CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
Registreert de classificatiefunctie die is opgegeven door schema_name.function_name. Deze functie classificeert elke nieuwe sessie en wijst de sessie toe aan een workloadgroep. Wanneer NULL
wordt gebruikt, worden nieuwe sessies automatisch toegewezen aan de default
workloadgroep.
MAX_OUTSTANDING_IO_PER_VOLUME = waarde
Van toepassing op: SQL Server 2014 (12.x) en hoger.
Hiermee stelt u de maximaal in de wachtrij geplaatste I/O-bewerkingen per schijfvolume in. Deze I/O-bewerkingen kunnen lees- of schrijfbewerkingen van elke grootte zijn. De maximumwaarde voor MAX_OUTSTANDING_IO_PER_VOLUME
is 100. De waarde is geen percentage. Deze instelling is ontworpen om IO-resourcebeheer af te stemmen op de IO-kenmerken van een schijfvolume. Het biedt een veiligheidscontrole op systeemniveau waarmee de database-engine kan voldoen aan de MIN_IOPS_PER_VOLUME
instelling die is opgegeven voor resourcegroepen, zelfs als voor andere pools de MAX_IOPS_PER_VOLUME
instelling is ingesteld op onbeperkt. Zie CREATE RESOURCE POOLvoor meer informatie.
UITSCHAKELEN
Schakelt resource governor uit. Het uitschakelen van resource governor heeft de volgende resultaten:
- De classificatiefunctie wordt niet uitgevoerd.
- Alle nieuwe gebruikerssessies worden automatisch geclassificeerd in de
default
workloadgroep. - Systeemsessies worden geclassificeerd in de
internal
workloadgroep. - Alle bestaande instellingen voor de workloadgroep en resourcegroep worden opnieuw ingesteld op de standaardwaarden. Er worden geen gebeurtenissen geactiveerd wanneer limieten worden bereikt.
- Normale systeembewaking wordt niet beïnvloed.
- Configuratiewijzigingen van Resource Governor kunnen worden aangebracht, maar de wijzigingen worden pas van kracht als resource governor is ingeschakeld.
- Nadat de database-engine opnieuw is opgestart, wordt de configuratie van resource governor niet geladen, maar wordt alleen de
default
eninternal
workloadgroepen en resourcegroepen gebruikt.
STATISTIEKEN OPNIEUW INSTELLEN
Stelt statistieken opnieuw in voor alle workloadgroepen en resourcegroepen die worden weergegeven in sys.dm_resource_governor_workload_groups en sys.dm_resource_governor_resource_pools.
Opmerkingen
ALTER RESOURCE GOVERNOR
kan niet worden gebruikt binnen een gebruikerstransactie.
De parameter RECONFIGURE
maakt deel uit van de syntaxis van de resource governor. Dit moet niet worden verward met HERCONFIGURE, een afzonderlijke DDL-instructie.
Zie Resource governorvoor meer informatie.
Machtigingen
Hiervoor is de machtiging CONTROL SERVER
vereist.
Voorbeelden
Resource governor inschakelen
Wanneer SQL Server is geïnstalleerd, wordt resource governor uitgeschakeld. In het volgende voorbeeld wordt resource governor ingeschakeld. Nadat de instructie is uitgevoerd, is resource governor ingeschakeld en worden ingebouwde workloadgroepen en resourcegroepen gebruikt.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Nieuwe sessies toewijzen aan de standaardgroep
In het volgende voorbeeld worden alle nieuwe sessies toegewezen aan de default
workloadgroep door een bestaande classificatiefunctie te verwijderen uit de resource governor-configuratie. Wanneer er geen functie is aangewezen als classificatiefunctie, worden alle nieuwe gebruikerssessies toegewezen aan de default
workloadgroep. Deze wijziging is alleen van toepassing op nieuwe sessies. Bestaande sessies worden niet beïnvloed.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Een classificatiefunctie maken en registreren
In het volgende voorbeeld wordt een classificatiefunctie gemaakt met de naam dbo.rg_classifier
in de master
-database. De functie classificeert elke nieuwe sessie op basis van de gebruikersnaam of toepassingsnaam en wijst de sessieaanvragen en query's toe aan een specifieke workloadgroep. Sessies die niet worden toegewezen aan de opgegeven gebruikers- of toepassingsnamen, worden toegewezen aan de standaardworkloadgroep. De classificatiefunctie wordt vervolgens geregistreerd en de configuratiewijziging wordt toegepast.
USE master;
GO
CREATE FUNCTION dbo.rg_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable for the function return value.
DECLARE @grp_name AS sysname;
-- If the login name is 'sa', classify the session into the groupAdmin workload group
IF (SUSER_NAME() = 'sa')
SET @grp_name = 'groupAdmin';
-- Classify SSMS sessions into the groupAdhoc workload group
ELSE IF UPPER(APP_NAME()) LIKE '%MANAGEMENT STUDIO%'
SET @grp_name = 'groupAdhoc';
-- Classify SSRS sessions into groupReports workload group
ELSE IF UPPER(APP_NAME()) LIKE '%REPORT SERVER%'
SET @grp_name = 'groupReports';
-- Otherwise, classify the session into the default workload group
ELSE
SET @grp_name = 'default';
-- Return the name of the workload group
RETURN @grp_name;
END;
GO
-- Register the classifier function and update resource governor configuration
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Statistieken van resource governor opnieuw instellen
In het volgende voorbeeld worden alle statistieken van de workloadgroep en resourcegroep opnieuw ingesteld.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
De MAX_OUTSTANDING_IO_PER_VOLUME-instelling configureren
In het volgende voorbeeld wordt de instelling MAX_OUTSTANDING_IO_PER_VOLUME
ingesteld op 20 IOs.
ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
Verwante inhoud
- Resource Governor-
- Resource Governor-configuratievoorbeelden en best practices
- RESOURCEGROEP MAKEN
- ALTER RESOURCE POOL
- RESOURCEGROEP NEERZETTEN
- EXTERNE RESOURCEGROEP MAKEN
- EXTERNE RESOURCEGROEP NEERZETTEN
- EXTERNE RESOURCEGROEP WIJZIGEN
- WORKLOADGROEP MAKEN
- WERKBELASTINGGROEP WIJZIGEN
- WERKBELASTINGGROEP
VERWIJDEREN - sys.dm_resource_governor_workload_groups
- sys.dm_resource_governor_resource_pools