Condividi tramite


ALTER RESOURCE GOVERNOR (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Questa istruzione esegue le azioni di Resource Governor seguenti:

  • Abilitare o disabilitare Resource Governor.
  • Applicare le modifiche di configurazione specificate quando vengono eseguite le istruzioni CREATE | ALTER | DROP WORKLOAD GROUP o CREATE | ALTER | DROP RESOURCE POOL o CREATE | ALTER | DROP EXTERNAL RESOURCE POOL.
  • Configurare la classificazione per le sessioni in ingresso.
  • Reimpostare le statistiche del pool di risorse e del gruppo del carico di lavoro.
  • Impostare il numero massimo di operazioni di I/O in coda per ogni volume del disco.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

RECONFIGURE

Quando Resource Governor non è abilitato, RECONFIGURE abilita Resource Governor. L'abilitazione di Resource Governor ha i risultati seguenti:

  • La funzione di classificazione, se presente, viene eseguita per le nuove sessioni, assegnandole ai gruppi di carico di lavoro.
  • Le prenotazioni e i limiti delle risorse specificati nella configurazione di Resource Governor vengono rispettati e applicati.
  • Le richieste esistenti prima dell'abilitazione di Resource Governor potrebbero essere interessate da eventuali modifiche alla configurazione apportate quando Resource Governor è abilitato.

Quando Resource Governor è abilitato, RECONFIGURE applica tutte le modifiche di configurazione apportate dalle istruzioni CREATE | ALTER | DROP WORKLOAD GROUP o CREATE | ALTER | DROP RESOURCE POOL o CREATE | ALTER | DROP EXTERNAL RESOURCE POOL dopo l'uso precedente di RECONFIGURE o dopo l'ultimo riavvio del motore di database.

Importante

ALTER RESOURCE GOVERNOR RECONFIGURE deve essere eseguito per rendere effettive le modifiche alla configurazione di Resource Governor.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

Registra la funzione di classificazione specificata da schema_name.function_name. Questa funzione classifica ogni nuova sessione e assegna la sessione a un gruppo di carico di lavoro. Quando si usa NULL, le nuove sessioni vengono assegnate automaticamente al gruppo di carico di lavoro default.

MAX_OUTSTANDING_IO_PER_VOLUME = value

Si applica a: SQL Server 2014 (12.x) e versioni successive.

Imposta il numero massimo di operazioni di I/O in coda per ogni volume del disco. Queste operazioni di I/O possono essere letture o scritture di qualsiasi dimensione. Il valore massimo per MAX_OUTSTANDING_IO_PER_VOLUME è 100. Il valore non è una percentuale. Questa impostazione è progettata per ottimizzare la governance delle risorse rispetto alle caratteristiche di I/O di un volume del disco. Fornisce un controllo di sicurezza a livello di sistema che consente al motore di database di soddisfare l'impostazione di MIN_IOPS_PER_VOLUME specificata per i pool di risorse anche se per altri pool l'impostazione MAX_IOPS_PER_VOLUME è impostata su illimitato. Per altre informazioni, vedere CREATE RESOURCE POOL.

DISABLE

Disabilita Resource Governor. La disabilitazione di Resource Governor ha i risultati seguenti:

  • La funzione di classificazione non viene eseguita.
  • Tutte le nuove sessioni utente vengono classificate automaticamente nel gruppo di carico di lavoro default.
  • Le sessioni di sistema vengono classificate nel gruppo di carico di lavoro internal.
  • Tutte le impostazioni del gruppo del carico di lavoro e del pool di risorse esistenti vengono reimpostate ai valori predefiniti. Non vengono generati eventi quando vengono raggiunti i limiti.
  • Il normale monitoraggio del sistema non è interessato.
  • È possibile apportare modifiche alla configurazione di Resource Governor, ma le modifiche non diventano effettive fino a quando Resource Governor non è abilitato.
  • Dopo il riavvio del motore di database, Resource Governor non carica la configurazione, ma usa solo i gruppi di carico di lavoro default e internal gruppi di carico di lavoro e pool di risorse.

RESET STATISTICS

Reimposta le statistiche su tutti i gruppi di carico di lavoro e i pool di risorse esposti in sys.dm_resource_governor_workload_groups e sys.dm_resource_governor_resource_pools.

Osservazioni:

ALTER RESOURCE GOVERNOR non può essere usato all'interno di una transazione utente.

Il parametro RECONFIGURE fa parte della sintassi di Resource Governor. Non deve essere confuso con RECONFIGURE, che è un'istruzione DDL separata.

Per altre informazioni, vedere Resource Governor.

Autorizzazioni

Richiede l'autorizzazione CONTROL SERVER.

Esempi

Abilitare Resource Governor

Quando SQL Server è installato, Resource Governor è disabilitato. L'esempio seguente abilita Resource Governor. Dopo l'esecuzione dell'istruzione, Resource Governor è abilitato e usa gruppi di carico di lavoro e pool di risorse predefiniti.

ALTER RESOURCE GOVERNOR RECONFIGURE;

Assegnare nuove sessioni al gruppo predefinito

Nell'esempio seguente vengono assegnate tutte le nuove sessioni al gruppo di carico di lavoro default rimuovendo qualsiasi funzione di classificazione esistente dalla configurazione di Resource Governor. Quando nessuna funzione viene designata come funzione di classificazione, tutte le nuove sessioni utente vengono assegnate al gruppo di carico di lavoro default. Questa modifica viene applicata solo alle nuove sessioni Le sessioni esistenti non sono interessate.

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

Creare e registrare una funzione di classificazione

Nell'esempio seguente viene creata una funzione di classificazione denominata dbo.rg_classifier nel database master. La funzione classifica ogni nuova sessione in base al nome utente o al nome dell'applicazione e assegna le richieste e le query della sessione a un gruppo del carico di lavoro specifico. Le sessioni sulle quali non viene eseguito il mapping ai nomi utente o dell'applicazione specifici vengono assegnate al gruppo del carico di lavoro predefinito. La funzione di classificazione viene quindi registrata e viene applicata la modifica della configurazione.

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;

Reimpostare le statistiche di Resource Governor

Nell'esempio seguente vengono reimpostate tutte le statistiche del gruppo del carico di lavoro e del pool di risorse.

ALTER RESOURCE GOVERNOR RESET STATISTICS;

Configurare l'impostazione MAX_OUTSTANDING_IO_PER_VOLUME

Nell'esempio seguente l'impostazione MAX_OUTSTANDING_IO_PER_VOLUME viene impostata su 20 operazioni di I/O.

ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);