Delen via


ALTER RESOURCE GOVERNOR (Transact-SQL)

van toepassing op:SQL ServerAzure 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 of CREATE | ALTER | DROP RESOURCE POOL of CREATE | 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 en internal 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);