ALTER RESOURCE GOVERNOR (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Questa istruzione viene usata per eseguire in SQL Server le azioni di Resource Governor indicate di seguito:

  • 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.

  • Abilitare o disabilitare Resource Governor.

  • Configurare la classificazione per le richieste in arrivo.

  • Reimpostare le statistiche del pool di risorse e del gruppo del carico di lavoro.

  • Impostare il numero massimo di operazioni di I/O per ogni volume del disco.

Convenzioni di sintassi Transact-SQL

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

DISABLE
Disabilita Resource Governor, determinando i seguenti risultati:

  • La funzione di classificazione non viene eseguita.

  • Tutte le nuove connessioni vengono automaticamente classificate nel gruppo predefinito.

  • Le richieste avviate dal sistema vengono classificate nel gruppo di carico di lavoro interno.

  • Tutte le impostazioni del gruppo del carico di lavoro e del pool di risorse esistenti vengono reimpostate ai valori predefiniti. In questo caso non viene generato alcun evento quando vengono raggiunti i limiti.

  • Il normale monitoraggio del sistema non viene modificato.

  • Le modifiche alla configurazione non hanno effetto fino all'abilitazione di Resource Governor.

  • Al riavvio di SQL Server non verrà caricata la configurazione di Resource Governor, ma solo i gruppi e i pool interni e predefiniti.

RECONFIGURE
Se non è abilitato, RECONFIGURE consente di abilitare Resource Governor determinando i seguenti risultati:

  • Viene eseguita la funzione di classificazione per le nuove connessioni, in modo che il relativo carico di lavoro possa essere assegnato ai gruppi del carico di lavoro.

  • Vengono imposti e applicati i limiti delle risorse specificati nella configurazione di Resource Governor.

  • Le richieste esistenti prima dell'abilitazione di Resource Governor sono interessate dalle modifiche alla configurazione effettuate quando Resource Governor è stato disabilitato.

Quando Resource Governor è in esecuzione, RECONFIGURE applica ogni modifica di configurazione richiesta durante l'esecuzione delle istruzioni CREATE|ALTER|DROP WORKLOAD GROUP o CREATE|ALTER|DROP RESOURCE POOL o CREATE|ALTER|DROP EXTERNAL RESOURCE POOL.

Importante

ALTER RESOURCE GOVERNOR RECONFIGURE deve essere eseguito per rendere operativa ogni modifica di configurazione.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
Registra la funzione di classificazione specificata da schema_name.function_name. La funzione classifica ogni nuova sessione e assegna le richieste e le query della sessione a un gruppo del carico di lavoro. Quando viene utilizzato NULL, le nuove sessioni vengono assegnate automaticamente al gruppo del carico di lavoro predefinito.

RESET STATISTICS
Reimposta le statistiche dei pool di risorse e dei gruppi del carico di lavoro. Per altre informazioni, vedere sys.dm_resource_governor_workload_groups (Transact-SQL) e sys.dm_resource_governor_resource_pools (Transact-SQL).

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. Non è una percentuale. Questa impostazione è progettata per ottimizzare la governance delle risorse rispetto alle caratteristiche di I/O di un volume del disco. Questa impostazione fornisce un controllo di sicurezza a livello di sistema che consente a SQL Server di soddisfare l'IOPS minimo per i pool di risorse anche se per gli altri pool MAX_IOPS_PER_VOLUME è impostato su illimitato. Per altre informazioni su MAX_IOPS_PER_VOLUME, vedere CREATE RESOURCE POOL.

Osservazioni:

ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE e ALTER RESOURCE GOVERNOR RESET STATISTICS non possono essere utilizzate in una transazione utente.

Il parametro RECONFIGURE appartiene alla sintassi di Resource Governor e non deve essere confuso con RECONFIGURE, che è un'istruzione DDL diversa.

Prima di eseguire istruzioni DDL, è consigliabile acquisire familiarità con gli stati di Resource Governor. Per altre informazioni, vedere Resource Governor.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempi

R. Avvio di Resource Governor

Alla prima installazione di SQL Server, Resource Governor risulta disabilitato. Nell'esempio seguente viene avviato Resource Governor. Una volta avviato Resource Governor mediante l'istruzione precedente, sarà possibile utilizzare i gruppi del carico di lavoro e i pool di risorse predefiniti.

ALTER RESOURCE GOVERNOR RECONFIGURE;  

B. Assegnazione di nuove sessioni al gruppo predefinito

Nell'esempio seguente vengono assegnate tutte le nuove sessioni al gruppo del carico di lavoro predefinito rimuovendo qualsiasi funzione di classificazione esistente dalla configurazione di Resource Governor. Quando nessuna funzione viene definita come funzione di classificazione, tutte le nuove sessioni vengono assegnate al gruppo del carico di lavoro predefinito. Questa modifica viene applicata solo alle nuove sessioni e non a quelle esistenti.

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

C. Creazione e registrazione di una funzione di classificazione

Nell'esempio seguente viene creata una funzione di classificazione denominata dbo.rgclassifier_v1. 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.

-- Store the classifier function in the master database.  
USE master;  
GO  
SET ANSI_NULLS ON;  
GO  
SET QUOTED_IDENTIFIER ON;  
GO  
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname   
WITH SCHEMABINDING  
AS  
BEGIN  
-- Declare the variable to hold the value returned in sysname.  
    DECLARE @grp_name AS sysname  
-- If the user login is 'sa', map the connection to the groupAdmin  
-- workload group.   
    IF (SUSER_NAME() = 'sa')  
        SET @grp_name = 'groupAdmin'  
-- Use application information to map the connection to the groupAdhoc  
-- workload group.  
    ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')  
        OR (APP_NAME() LIKE '%QUERY ANALYZER%')  
            SET @grp_name = 'groupAdhoc'  
-- If the application is for reporting, map the connection to  
-- the groupReports workload group.  
    ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')  
        SET @grp_name = 'groupReports'  
-- If the connection does not map to any of the previous groups,  
-- put the connection into the default workload group.  
    ELSE  
        SET @grp_name = 'default'  
    RETURN @grp_name  
END;  
GO  
-- Register the classifier user-defined function and update the   
-- the in-memory configuration.  
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

D. Reimpostazione delle statistiche

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

ALTER RESOURCE GOVERNOR RESET STATISTICS;  

E. Impostare l'opzione MAX_OUTSTANDING_IO_PER_VOLUME

Nell'esempio seguente l'opzione MAX_OUTSTANDING_IO_PER_VOLUME viene impostata su 20.

ALTER RESOURCE GOVERNOR  
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);   

Vedi anche

CREATE RESOURCE POOL (Transact-SQL)
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
DROP EXTERNAL RESOURCE POOL (Transact-SQL)
ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
Resource Governor
sys.dm_resource_governor_workload_groups (Transact-SQL)
sys.dm_resource_governor_resource_pools (Transact-SQL)