ALTER RESOURCE GOVERNOR (Transact-SQL)

Il comando viene utilizzato per eseguire le azioni seguenti:

  • Applicare le modifiche di configurazione specificate quando vengono eseguite le istruzioni CREATE|ALTER|DROP WORKLOAD GROUP o CREATE|ALTER|DROP 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

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

Termine

Definizione

DISABLE | RECONFIGURE

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

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.

Nota importanteImportante
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 ulteriori informazioni, vedere sys.dm_resource_governor_workload_groups (Transact-SQL) e sys.dm_resource_governor_resource_pools (Transact-SQL).

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 costituisce un'istruzione DDL diversa.

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

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempi

A. Avvio di Resource Governor

Alla prima installazione di SQL Server, Resource Governor risulta disattivato. 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 di 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 non mappate 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 di carico di lavoro e del pool.

ALTER RESOURCE GOVERNOR RESET STATISTICS;