Funzione di classificazione di Resource GovernorResource Governor Classifier Function

Il processo di classificazione di Resource Governor in SQL ServerSQL Server consente di assegnare sessioni in ingresso a un gruppo di carico di lavoro in base alle caratteristiche della sessione.The SQL ServerSQL Server resource governor classification process assigns incoming sessions to a workload group based on the characteristics of the session. È possibile personalizzare la logica di classificazione scrivendo una funzione definita dall'utente, chiamata funzione di classificazione.You can tailor the classification logic by writing a user-defined function, called a classifier function.

ClassificazioneClassification

Resource Governor supporta la classificazione delle sessioni in ingresso.Resource Governor supports the classification of incoming sessions. La classificazione è basata su un set di criteri definiti dall'utente contenuti in una funzione.Classification is based on a set of user-written criteria contained in a function. I risultati della logica della funzione consentono a Resource Governor di classificare sessioni in gruppi del carico di lavoro esistenti.The results of the function logic enable Resource Governor to classify sessions into existing workload groups.

Nota

Il gruppo del carico di lavoro interno è popolato con richieste per solo uso interno.The internal workload group is populated with requests that are for internal use only. Non è possibile modificare i criteri utilizzati per indirizzare tali richieste né è possibile classificare richieste nel gruppo del carico di lavoro interno.You cannot change the criteria used for routing these requests and you cannot classify requests into the internal workload group.

È possibile scrivere una funzione scalare che contiene la logica utilizzata per assegnare sessioni in ingresso a un gruppo del carico di lavoro.You can write a scalar function that contains the logic that is used to assign incoming sessions to a workload group. Prima che sia possibile utilizzare tale funzione, è necessario completare le operazioni seguenti:Before you can use this function, you must complete the following actions:

  • Creare e registrare la funzione utilizzando l'istruzione ALTER RESOURCE GOVERNOR.Create and register the function using the ALTER RESOURCE GOVERNOR statement. Per altre informazioni, vedere ALTER RESOURCE GOVERNOR (Transact-SQL).For more information, see ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Aggiornare la configurazione di Resource Governor utilizzando l'istruzione ALTER RESOURCE GOVERNOR con il parametro RECONFIGURE.Update the Resource Governor configuration using the ALTER RESOURCE GOVERNOR statement with the RECONFIGURE parameter.

    Dopo avere creato la funzione e applicato le modifiche di configurazione, la funzione di classificazione di Resource Governor utilizzerà il nome del gruppo del carico di lavoro restituito dalla funzione per inviare una nuova richiesta al gruppo del carico di lavoro appropriato.After you create the function and apply the configuration changes, the Resource Governor classifier will use the workload group name returned by the function to send a new request to the appropriate workload group.

Importante

Potrebbe verificarsi il timeout della sessione client se la funzione di classificazione non viene completata entro il timeout specificato per l'accesso.The client session may time out if the classification function does not complete within the specified time-out for the login. Il timeout di accesso è una proprietà client e, in quanto tale, il server non è a conoscenza di un timeout. Una funzione di classificazione con esecuzione prolungata può lasciare il server con connessioni orfane per periodi prolungati.Login time-out is a client property and as such, the server is unaware of a time-out. A long-running classifier function can leave the server with orphaned connections for long periods. È importante che vengano create funzioni di classificazione che terminano l'esecuzione prima del timeout della connessione.It is important that you create classifier functions that finish executing before a connection time-out.

La funzione definita dall'utente ha le seguenti caratteristiche e comportamenti:The user-defined function has the following characteristics and behaviors:

  • La funzione definita dall'utente viene valutata per ogni nuova sessione, anche quando il pool di connessioni è abilitato.The user-defined function is evaluated for every new session, even when connection pooling is enabled.

  • La funzione definita dall'utente fornisce il contesto del gruppo del carico di lavoro per la sessione.The user-defined function gives workload group context for the session. Dopo che l'appartenenza a un gruppo è stata determinata, la sessione viene associata al gruppo del carico di lavoro per la durata della sessione.After group membership is determined, the session is bound to the workload group for the lifetime of the session.

  • Se la funzione definita dall'utente restituisce NULL, il valore predefinito o il nome di un gruppo non esistente, alla sessione viene fornito il contesto predefinito del gruppo del carico di lavoro.If the user-defined function returns NULL, default, or the name of non-existent group the session is given the default workload group context. Alla sessione viene inoltre fornito il contesto predefinito se per qualsiasi motivo la funzione non riesce.The session is also given the default context if the function fails for any reason.

  • La funzione deve essere definita con l'ambito del server (database master).The function should be defined with server scope (master database).

  • La designazione della funzione di classificazione definita dall'utente viene applicata solo dopo l'esecuzione di ALTER RESOURCE GOVERNOR RECONFIGURE.The classifier user-defined function designation only takes effect after ALTER RESOURCE GOVERNOR RECONFIGURE is executed.

  • È possibile definire come classificatore solo una funzione definita dall'utente alla volta.Only one user-defined function can be designated as a classifier at a time.

  • La funzione di classificazione definita dall'utente non può essere eliminata o modificata a meno che non venga rimosso lo stato di classificazione.The classifier user-defined function cannot be dropped or altered unless its classifier status is removed.

  • In assenza di una funzione di classificazione definita dall'utente, tutte le sessioni vengono classificate nel gruppo predefinito.In the absence of a classifier user-defined function, all sessions are classified into the default group.

  • Il gruppo del carico di lavoro restituito dalla funzione di classificazione è esterno all'ambito della restrizione relativa all'associazione allo schema.The workload group returned by the classifier function is outside the scope of the schema-binding restriction. Non è possibile ad esempio eliminare una tabella, ma è possibile eliminare un gruppo del carico di lavoro.For example, you cannot drop a table, but you can drop a workload group.

Importante

Si consiglia di abilitare la connessione amministrativa dedicata nel server.We recommend enabling the Dedicated Administrator Connection (DAC) on the server. Tale connessione non è soggetta alla classificazione di Resource Governor e può essere utilizzata per monitorare e risolvere i problemi relativi a una funzione di classificazione.The DAC is not subject to Resource Governor classification and can be used to monitor and troubleshoot a classifier function. Per altre informazioni, vedere Connessione di diagnostica per gli amministratori di database.For more information, see Diagnostic Connection for Database Administrators. Se per la risoluzione dei problemi non è disponibile alcuna connessione DAC, è possibile riavviare il sistema in modalità utente singolo.If a DAC is not available for troubleshooting, the other option is to restart the system in single user mode. Sebbene tale modalità non sia soggetta alla classificazione, non consente di eseguire la diagnosi della classificazione di Resource Governor mentre quest'ultimo è in esecuzione.Although single user mode is not subject to classification, it does not give you the ability to diagnose Resource Governor classification while it is running.

Processo di classificazioneClassification Process

Nel contesto di Resource Governor il processo di accesso per una sessione è costituito dai passaggi seguenti:In the context of Resource Governor, the login process for a session consists of the following steps:

  1. Autenticazione dell'account di accessoLogin authentication

  2. Esecuzione del trigger LOGONLOGON trigger execution

  3. ClassificazioneClassification

    Quando la classificazione viene avviata, in Resource Governor viene eseguita la funzione di classificazione e il valore restituito dalla funzione viene utilizzato per inviare richieste al gruppo del carico di lavoro appropriato.When classification starts, Resource Governor executes the classifier function and uses the value returned by the function to send requests to the appropriate workload group.

Nota

Informazioni sull'esecuzione della funzione di classificazione e sui trigger LOGON sono disponibili in sys.dm_exec_sessions e sys.dm_exec_requests.Information about the execution of the classifier function and LOGON triggers is exposed in sys.dm_exec_sessions and sys.dm_exec_requests.

Attività della funzione di classificazioneClassification Function Tasks

Descrizione dell'attivitàTask Description ArgomentoTopic
Viene descritto come creare e verificare una funzione di classificazione definita dall'utente.Describes how to create and test a classifier user-defined function. Creare e testare una funzione di classificazione definita dall'utenteCreate and Test a Classifier User-Defined Function

Vedere ancheSee Also

Resource Governor Resource Governor
Abilitare Resource Governor Enable Resource Governor
Pool di risorse di Resource Governor Resource Governor Resource Pool
Gruppo di carico di lavoro di Resource Governor Resource Governor Workload Group
Configurare Resource Governor utilizzando un modello Configure Resource Governor Using a Template
Visualizzare proprietà di Resource GovernorView Resource Governor Properties