Dela via


ÄNDRA RESURSGUVERNÖR (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Den här instruktionen utför följande åtgärder för resursguvernör:

  • Aktivera eller inaktivera resursguvernör.
  • Tillämpa de konfigurationsändringar som anges när CREATE | ALTER | DROP WORKLOAD GROUP- eller CREATE | ALTER | DROP RESOURCE POOL- eller CREATE | ALTER | DROP EXTERNAL RESOURCE POOL-instruktioner körs.
  • Konfigurera klassificering för inkommande sessioner.
  • Återställ statistik för arbetsbelastningsgrupper och resurspooler.
  • Ange maximalt antal I/O-åtgärder i kö per diskvolym.

Transact-SQL syntaxkonventioner

Syntax

ALTER RESOURCE GOVERNOR
    { RECONFIGURE
          [ WITH
                ( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
                  [ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
                )
          ]
      | DISABLE
      | RESET STATISTICS
    }
[ ; ]

Argument

KONFIGURERA

När resursguvernören inte är aktiverad aktiverar RECONFIGURE resursguvernören. När du aktiverar resursguvernören får du följande resultat:

  • Om det finns någon klassificeringsfunktion körs den för nya sessioner och tilldelar dem till arbetsbelastningsgrupper.
  • Resursreservationer och begränsningar som anges i konfigurationen av resursguvernören respekteras och framtvingas.
  • Begäranden som fanns innan resursguvernören aktiverades kan påverkas av eventuella konfigurationsändringar som görs när resursguvernören är aktiverad.

När resursguvernören är aktiverad tillämpar RECONFIGURE eventuella konfigurationsändringar som gjorts av CREATE | ALTER | DROP WORKLOAD GROUP- eller CREATE | ALTER | DROP RESOURCE POOL- eller CREATE | ALTER | DROP EXTERNAL RESOURCE POOL-instruktioner efter den tidigare användningen av RECONFIGURE eller efter den senaste omstarten av databasmotorn.

Viktig

ALTER RESOURCE GOVERNOR RECONFIGURE måste köras för att eventuella konfigurationsändringar för resursguvernören ska börja gälla.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

Registrerar klassificeringsfunktionen som anges av schema_name.function_name. Den här funktionen klassificerar varje ny session och tilldelar sessionen till en arbetsbelastningsgrupp. När NULL används tilldelas nya sessioner automatiskt till default arbetsbelastningsgrupp.

MAX_OUTSTANDING_IO_PER_VOLUME = värde

gäller för: SQL Server 2014 (12.x) och senare.

Anger maximalt antal I/O-åtgärder i kö per diskvolym. Dessa I/O-åtgärder kan vara läsningar eller skrivningar av valfri storlek. Det maximala värdet för MAX_OUTSTANDING_IO_PER_VOLUME är 100. Värdet är inte en procentandel. Den här inställningen är utformad för att justera I/O-resursstyrning till I/O-egenskaperna för en diskvolym. Det ger en säkerhetskontroll på systemnivå som gör att databasmotorn kan uppfylla den MIN_IOPS_PER_VOLUME inställning som angetts för resurspooler även om andra pooler har inställningen MAX_IOPS_PER_VOLUME inställd på obegränsad. Mer information finns i CREATE RESOURCE POOL.

INAKTIVERA

Inaktiverar resursguvernör. Om du inaktiverar resursguvernören får du följande resultat:

  • Klassificerarfunktionen körs inte.
  • Alla nya användarsessioner klassificeras automatiskt i default arbetsbelastningsgrupp.
  • Systemsessioner klassificeras i arbetsbelastningsgruppen internal.
  • Alla befintliga inställningar för arbetsbelastningsgrupper och resurspooler återställs till standardvärdena. Inga händelser utlöses när gränserna nås.
  • Normal systemövervakning påverkas inte.
  • Konfigurationsändringar för resursguvernören kan göras, men ändringarna börjar inte gälla förrän resursguvernören har aktiverats.
  • När du har startat om databasmotorn läser resursguvernören inte in konfigurationen, utan använder i stället bara default och internal arbetsbelastningsgrupper och resurspooler.

ÅTERSTÄLL STATISTIK

Återställer statistik för alla arbetsbelastningsgrupper och resurspooler som exponeras i sys.dm_resource_governor_workload_groups och sys.dm_resource_governor_resource_pools.

Anmärkningar

ALTER RESOURCE GOVERNOR kan inte användas i en användartransaktion.

Parametern RECONFIGURE är en del av syntaxen för resursguvernören. Det bör inte förväxlas med RECONFIGURE, som är en separat DDL-instruktion.

Mer information finns i Resource Governor.

Behörigheter

Kräver behörigheten CONTROL SERVER.

Exempel

Aktivera resursguvernör

När SQL Server har installerats inaktiveras resursguvernören. I följande exempel aktiveras resursguvernören. När instruktionen har körts aktiveras resursguvernören och använder inbyggda arbetsbelastningsgrupper och resurspooler.

ALTER RESOURCE GOVERNOR RECONFIGURE;

Tilldela nya sessioner till standardgruppen

I följande exempel tilldelas alla nya sessioner till den default arbetsbelastningsgruppen genom att ta bort alla befintliga klassificerare från konfigurationen av resursguvernören. När ingen funktion har angetts som en klassificerare tilldelas alla nya användarsessioner till default arbetsbelastningsgrupp. Den här ändringen gäller endast för nya sessioner. Befintliga sessioner påverkas inte.

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;

Skapa och registrera en klassificerarfunktion

I följande exempel skapas en klassificerarfunktion med namnet dbo.rg_classifier i master-databasen. Funktionen klassificerar varje ny session baserat på användarnamnet eller programnamnet och tilldelar sessionsbegäranden och frågor till en specifik arbetsbelastningsgrupp. Sessioner som inte mappas till de angivna användar- eller programnamnen tilldelas till standardarbetsbelastningsgruppen. Klassificerarfunktionen registreras sedan och konfigurationsändringen tillämpas.

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;

Återställa statistik för resursguvernör

I följande exempel återställs all statistik för arbetsbelastningsgrupper och resurspooler.

ALTER RESOURCE GOVERNOR RESET STATISTICS;

Konfigurera inställningen MAX_OUTSTANDING_IO_PER_VOLUME

I följande exempel anges inställningen MAX_OUTSTANDING_IO_PER_VOLUME till 20 IO:er.

ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);