Stati di Resource Governor

Resource Governor ha due stati in SQL Server: abilitato o disabilitato. Questi stati influiscono sulle operazioni di base così come sull'elaborazione del carico di lavoro durante l'applicazione di modifiche alla configurazione. In questo argomento vengono descritti gli stati di Resource Governor e cosa succede quando si verificano le seguenti situazioni:

  • La configurazione e lo stato iniziali quando viene installato Resource Governor.

  • Viene abilitato o disabilitato Resource Governor.

  • La configurazione di Resource Governor viene modificata

Configurazione iniziale

Quando Resource Governor viene installato, vengono creati i seguenti gruppi del carico di lavoro seguenti e i relativi pool di risorse:

  • Gruppo interno e pool interno.

  • Gruppo predefinito e pool predefinito.

In questa fase Resource Governor è disabilitato.

Abilitazione o disabilitazione di Resource Governor

I seguenti comportamenti sono normali quando viene abilitato o disabilitato Resource Governor.

Abilitazione di Resource Governor

Per abilitare Resource Governor, eseguire ALTER RESOURCE GOVERNOR RECONFIGURE. L'abilitazione di Resource Governor ha 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.

Disabilitazione di Resource Governor

Per disabilitare Resource Governor, eseguire ALTER RESOURCE GOVERNOR DISABLE. La disabilitazione di Resource Governor ha 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.

  • La configurazione di Resource Governor può essere modificata quando Resource Governor è disabilitato, ma le modifiche non vengono applicate finché Resource Governor non viene abilitato.

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

Modifica della configurazione di Resource Governor

Le modifiche alla configurazione di Resource Governor non vengono applicate immediatamente. La modifica alla configurazione si verifica in due passaggi:

  1. Eseguire l'istruzione ALTER appropriata per modificare l'impostazione di un pool di risorse o di un gruppo del carico di lavoro. Vengono aggiornati i metadati di configurazione.

  2. Eseguire l'istruzione ALTER RESOURCE GOVERNOR. Vengono copiati i metadati aggiornati alla configurazione in memoria. Nella tabella seguente viene descritto quando le modifiche alla configurazione generale vengono applicate e sono visibili in una sessione di Resource Governor.

Componente

Descrizione

Classificazione definita dall'utente

La modifica è effettiva per le nuove connessioni della sessione.

Pool di risorse

Le sessioni con esecuzione prolungata saranno probabilmente influenzate dalla modifica. Le sessioni con esecuzione rapida potrebbero terminare prima dell’applicazione della modifica.

Gruppo del carico di lavoro

Le sessioni correnti non sono interessate dalla modifica, mentre le nuove connessioni non lo sono.

Oltre al comportamento generale della sessione quando le istruzioni DDL di Resource Governor vengono eseguite, le singole impostazioni in un pool di risorse o nel gruppo del carico di lavoro hanno risultati prevedibili e un effetto specifico sull'elaborazione quando queste impostazioni vengono modificate.

Impostazioni del pool di risorse

Sono disponibili quattro impostazioni per la configurazione di un pool di risorse. Di seguito sono riportate le impostazioni disponibili:

  • Percentuale minima e massima per l'utilizzo della CPU.

  • Percentuale minima e massima per l'utilizzo della memoria.

Quando si applicano le modifiche a una configurazione del pool di risorse, si verifica un periodo di transizione durante il quale vengono gestite le richieste attive o in attesa. Nella seguente tabella vengono descritti i requisiti della sessione e il comportamento della sessione quando vengono applicate modifiche a un'impostazione del pool di risorse.

Impostazione

Azione

Descrizione

Percentuale minima

Aumento o riduzione

  • Aumento: gli altri pool di risorse sono ridotti alle impostazioni massime effettive. Se la somma delle impostazioni minime raggiunge il 100 per cento, è necessario ridurre alcune impostazioni minime negli altri pool di risorse, quindi aumentare l'impostazione minima del pool di risorse corrente.

  • Riduzione:se l'impostazione massima effettiva è uguale alla minima, la memoria non allocata viene spostata dal pool di risorse e le richieste in coda potrebbero non riuscire. La memoria allocata non viene spostata dal pool di risorse finché le richieste attive non vengono terminate.

Percentuale massima

Aumento o riduzione

  • Aumento: nessun problema in seguito alla modifica dell'impostazione.

  • Riduzione: se il nuovo valore è superiore all'utilizzo effettivo, non si verificano problemi. Se il nuovo valore è inferiore all'utilizzo effettivo, si verifica un periodo di transizione. Le richieste esistenti vengono completate prima dell'applicazione della modifica e le nuove richieste potrebbero non riuscire.

Impostazioni dei gruppi del carico di lavoro

Sono disponibili sette impostazioni per la configurazione di un gruppo del carico di lavoro. Di seguito sono riportate le impostazioni disponibili:

  • Allocazione massima della memoria per una richiesta.

  • Tempo massimo della CPU per una richiesta.

  • Timeout della risorsa per una richiesta.

  • Impostazione di importanza relativa per una richiesta.

  • Limite del gruppo di lavoro per il numero di richieste.

  • Grado massimo di parallelismo.

  • Pool di risorse specificato.

Impostazione

Azione

Descrizione

Memoria max

Aumento o riduzione

  • Aumento. Nessun effetto sulle query attive. Tali query possono ottenere più memoria, se disponibile.

  • Riduzione. Le richieste attive non sono influenzate, ma le nuove richieste avranno meno memoria a disposizione.

Tempo massimo CPU

Aumento o riduzione

  • Aumento. Nessun effetto su query attive.

  • Riduzione. Provoca la generazione di un evento per una query superiore al limite, ma l'esecuzione della query continua.

Timeout della risorsa

Aumento o riduzione

Le query già in attesa nella coda non sono interessate. Le nuove query utilizzano la nuova impostazione.

Priorità

Aumento o riduzione

Interessa solo la distribuzione della CPU per le query nel gruppo del carico di lavoro.

Numero massimo di richieste

Aumento o riduzione

  • Aumento. Nessun effetto sulle query esistenti.

  • Riduzione. Le query esistenti non sono interessate, ma le nuove query vengono messe in attesa e potrebbe verificarsi il timeout.

Grado massimo di parallelismo

Aumento o riduzione

Interessa solo la compilazione e l'esecuzione di nuove query.

Pool di risorse specificato

Modifica

Le richieste attive continuano a utilizzare il pool di risorse esistente e le relative impostazioni. Le nuove richieste utilizzano il pool nuovo e le relative impostazioni.

Impostazioni di Resource Governor

Oltre a modificare una configurazione o lo stato corrente di Resource Governor, è possibile utilizzare l'istruzione ALTER RESOURCE GOVERNOR RECONFIGURE per creare o modificare la funzione di classificazione.

Quando viene registrata una nuova funzione di classificazione, vengono modificate le regole utilizzate per indirizzare le nuove connessioni a un gruppo del carico di lavoro differente. Questa modifica non influisce su query già classificate, ma solo sulle query nuove.