Condividi tramite


ALTER WORKLOAD GROUP (Transact-SQL)

Selezionare un prodotto

Nella riga seguente selezionare il nome del prodotto a cui si è interessati e vengono visualizzate solo le informazioni del prodotto.

* SQL Server *  

dell'istanza gestita di SQL

Azure Synapse
di analisi

 

SQL Server e Istanza gestita di SQL

Modifica una configurazione del gruppo di carico di lavoro di Resource Governor esistente e, facoltativamente, la assegna a un pool di risorse di Resource Governor diverso.

Nota

Per Istanza gestita di SQL di Azure, è necessario essere nel contesto del database master per modificare la configurazione di Resource Governor.

Transact-SQL convenzioni di sintassi.

Sintassi

ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
      [ [ , ] MAX_DOP = value ]
      [ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]

Argomenti

group_name | [impostazione predefinita]

Nome di un gruppo di carico di lavoro definito dall'utente esistente o del gruppo di carico di lavoro predefinito di Resource Governor default.

default deve essere racchiuso tra parentesi quadre ([]) o virgolette ("") quando viene usato con ALTER WORKLOAD GROUP per evitare conflitti con DEFAULT, ovvero una parola riservata di sistema. Per altre informazioni, vedere identificatori di database .

I pool di risorse predefiniti e i gruppi di carico di lavoro usano tutti i nomi minuscoli, ad esempio default. Usare il default minuscolo nei server che usano regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole considerano default, Defaulte DEFAULT come lo stesso valore.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Specifica l'importanza relativa di una richiesta nel gruppo di carico di lavoro. Il valore predefinito è MEDIUM.

IMPORTANCE è locale per il pool di risorse che contiene il gruppo di carico di lavoro. I gruppi di carico di lavoro di importanza diversa all'interno dello stesso pool di risorse influiscono l'uno sull'altro, ma non influiscono sui gruppi di carico di lavoro in altri pool di risorse.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valore

Specifica la quantità massima di memoria dell'area di lavoro query che una singola richiesta può richiedere dal pool. valore è una percentuale delle dimensioni del pool di risorse definite da MAX_MEMORY_PERCENT. Il valore predefinito è 25.

In SQL Server 2017 (14.x) e versioni precedenti valore è un numero intero e l'intervallo consentito è compreso tra 1 e 100.

A partire da SQL Server 2019 (15.x), il valore può essere frazionariamente usando il tipo di dati float. L'intervallo consentito è compreso tra 0 e 100.

Importante

La quantità specificata si riferisce solo alla memoria dell'area di lavoro query ottenuta tramite concessioni di memoria di query.

Non è consigliabile impostare valore troppo grande (ad esempio, maggiore di 70) perché il server potrebbe non essere in grado di riservare memoria sufficiente per altre query simultanee. Questo può causare un timeout della concessione di memoria errore 8645.

L'impostazione di valore su 0 o un valore ridotto potrebbe impedire l'esecuzione di query con operatori che richiedono memoria dell'area di lavoro, ad esempio sort e hash, dall'esecuzione in gruppi di carico di lavoro definiti dall'utente. Se i requisiti di memoria della query superano il limite definito da questo parametro, si verifica il comportamento seguente:

  • Per i gruppi di carico di lavoro definiti dall'utente, il server tenta di ridurre il grado di parallelismo (DOP) della richiesta (query) fino a quando il requisito di memoria non rientra nel limite o fino a quando dop è uguale a 1. Se il requisito di memoria della query è ancora maggiore del limite, si verifica l'errore 8657 e la query non riesce.
  • Per i gruppi di carico di lavoro internal e default, il server consente alla query di ottenere la memoria necessaria.

In entrambi i casi, 'errore 8645 potrebbe verificarsi se il server non dispone di memoria fisica insufficiente.

REQUEST_MAX_CPU_TIME_SEC = valore

Specifica la quantità massima di tempo cpu, in secondi, che può essere usata da una richiesta. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore è 0, ovvero illimitata.

Per impostazione predefinita, Resource Governor non impedisce a una richiesta di continuare se viene superato il tempo massimo. Tuttavia, viene generato un evento. Per altre informazioni, vedere classe di evento Soglia CPU superata.

A partire da SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e usando flag di traccia 2422, Resource Governor interrompe una richiesta quando viene superato il tempo massimo di CPU.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valore

Specifica il tempo massimo, espresso in secondi, in cui una query può attendere che una concessione di memoria dalla memoria dell'area di lavoro query diventi disponibile. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore, 0 usa un calcolo interno in base al costo della query per determinare il tempo massimo.

Una query non ha sempre esito negativo quando viene raggiunto un timeout di concessione di memoria. Una query ha esito negativo solo se sono in esecuzione troppe query simultanee. In caso contrario, la query potrebbe ottenere solo la concessione di memoria minima, con conseguente riduzione delle prestazioni delle query.

MAX_DOP = valore

Specifica il grado massimo di parallelismo (MAXDOP) per l'esecuzione di query parallele. L'intervallo consentito per valore è compreso tra 0 e 64. L'impostazione predefinita per valore, 0 usa l'impostazione globale.

Per altre informazioni, vedere MAXDOP.

GROUP_MAX_REQUESTS = valore

Specifica il numero massimo di richieste simultanee che possono essere eseguite nel gruppo di carico di lavoro. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore è 0 e consente richieste illimitate. Quando vengono raggiunte le richieste simultanee massime, è possibile creare una sessione in tale gruppo, ma viene inserita in uno stato di attesa fino a quando il numero di richieste simultanee scende al di sotto del valore specificato.

USING { pool_name | [impostazione predefinita] }

Associa il gruppo di carico di lavoro al pool di risorse definito dall'utente identificato da pool_nameo al pool di risorse default. Se non viene specificato pool_name o se l'argomento USING non viene specificato, il gruppo di carico di lavoro è associato al pool di default predefinito.

default è una parola riservata e, se specificata in USING, deve essere racchiusa tra parentesi quadre ([]) o virgolette ("").

I pool di risorse predefiniti e i gruppi di carico di lavoro usano tutti i nomi minuscoli, ad esempio default. Usare il default minuscolo nei server che usano regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole considerano default, Defaulte DEFAULT come lo stesso valore.

Osservazioni

ALTER WORKLOAD GROUP è consentito nel gruppo di carico di lavoro default, ma non nel gruppo di internal.

Le modifiche apportate alla configurazione del gruppo di carico di lavoro non diventano effettive finché non viene eseguita ALTER RESOURCE GOVERNOR RECONFIGURE.

Per altre informazioni, vedere resource governor e gruppo di carico di lavoro di Resource Governor.

MAXDOP

Per una determinata query, la MAXDOP effettiva viene determinata nel modo seguente:

  • MAXDOP come hint per la query viene rispettato purché non superi l'impostazione del gruppo di carico di lavoro MAX_DOP.
  • MAXDOP come hint per la query esegue sempre l'override della configurazione del server max degree of parallelism. Per altre informazioni, vedere configurazione del server : max degree of parallelism.
  • Il gruppo di carico di lavoro MAX_DOP esegue l'override della configurazione del server max degree of parallelism e della configurazione con ambito database MAXDOP.

Il limite di MAXDOP è impostato per ogni attività . Non è una richiesta per o per limite di query. Durante un'esecuzione di una query parallela, una singola richiesta può generare più attività assegnate a un'utilità di pianificazione . Per altre informazioni, vedere la guida all'architettura thread e attività.

Quando una query è contrassegnata come seriale in fase di compilazione (MAXDOP = 1), non può essere eseguita con parallelismo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione di configurazione del server. Dopo MAXDOP viene determinato per una query, può essere ridotto solo a causa della pressione della memoria. La riconfigurazione del gruppo di carico di lavoro non influisce sulle query in attesa nella coda delle concessioni di memoria.

Piani memorizzati nella cache

Quando si modifica un'impostazione che influisce su un piano, ad esempio MAX_DOP, la nuova impostazione diventa effettiva nei piani memorizzati nella cache in precedenza solo dopo l'esecuzione di DBCC FREEPROCCACHE (<pool_name>), dove <pool_name> è il nome di un pool di risorse di Resource Governor usato dal gruppo di carico di lavoro corrente.

  • Se si modifica MAX_DOP su 1, l'esecuzione di DBCC FREEPROCCACHE non è necessaria perché i piani paralleli possono essere eseguiti in modalità seriale. Tuttavia, un piano di questo tipo potrebbe essere meno efficiente di un piano compilato come piano seriale.
  • Se non è necessario modificare MAX_DOP da 1 a 0 o da un valore maggiore di 1, l'esecuzione di DBCC FREEPROCCACHE. Tuttavia, i piani seriali non possono essere eseguiti in parallelo, quindi la cancellazione della rispettiva cache consente la compilazione di nuovi piani usando il parallelismo.

Avvertimento

La cancellazione dei piani memorizzati nella cache da un pool di risorse associato a più gruppi di carico di lavoro influisce su tutti i gruppi di carico di lavoro usando il pool di risorse definito dall'utente identificato da <pool_name>.

Creazione dell'indice

Per motivi di prestazioni, la creazione dell'indice può usare un'area di lavoro di memoria superiore a quella concessa inizialmente. Resource Governor supporta questa gestione speciale. Tuttavia, la concessione iniziale e le eventuali concessioni di memoria aggiuntive sono limitate dalle impostazioni del gruppo di carico di lavoro e del pool di risorse.

La memoria utilizzata per creare un indice non allineato in una tabella partizionata è proporzionale al numero di partizioni coinvolte. Se la memoria totale richiesta supera il limite per query applicato dall'impostazione del gruppo di carico di lavoro REQUEST_MAX_MEMORY_GRANT_PERCENT, la creazione dell'indice potrebbe non riuscire. Poiché il gruppo di carico di lavoro default consente a una query di superare il limite per ogni query con la memoria minima necessaria per l'avvio per la compatibilità con le versioni precedenti, potrebbe essere possibile creare lo stesso indice usando il gruppo di carico di lavoro default se il pool di risorse default ha memoria totale sufficiente.

Autorizzazioni

Richiede l'autorizzazione CONTROL SERVER.

Esempi

Nell'esempio seguente viene illustrato come modificare l'importanza delle richieste nel gruppo predefinito da MEDIUM a LOW.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

Nell'esempio seguente viene illustrato come spostare un gruppo di carico di lavoro dal pool attualmente presente nel pool di default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* Istanza gestita di SQL *  

Azure Synapse
di analisi

 

SQL Server e Istanza gestita di SQL

Modifica una configurazione del gruppo di carico di lavoro di Resource Governor esistente e, facoltativamente, la assegna a un pool di risorse di Resource Governor diverso.

Nota

Per Istanza gestita di SQL di Azure, è necessario essere nel contesto del database master per modificare la configurazione di Resource Governor.

Transact-SQL convenzioni di sintassi.

Sintassi

ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
      [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
      [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
      [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
      [ [ , ] MAX_DOP = value ]
      [ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]

Argomenti

group_name | [impostazione predefinita]

Nome di un gruppo di carico di lavoro definito dall'utente esistente o del gruppo di carico di lavoro predefinito di Resource Governor default.

default deve essere racchiuso tra parentesi quadre ([]) o virgolette ("") quando viene usato con ALTER WORKLOAD GROUP per evitare conflitti con DEFAULT, ovvero una parola riservata di sistema. Per altre informazioni, vedere identificatori di database .

I pool di risorse predefiniti e i gruppi di carico di lavoro usano tutti i nomi minuscoli, ad esempio default. Usare il default minuscolo nei server che usano regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole considerano default, Defaulte DEFAULT come lo stesso valore.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Specifica l'importanza relativa di una richiesta nel gruppo di carico di lavoro. Il valore predefinito è MEDIUM.

IMPORTANCE è locale per il pool di risorse che contiene il gruppo di carico di lavoro. I gruppi di carico di lavoro di importanza diversa all'interno dello stesso pool di risorse influiscono l'uno sull'altro, ma non influiscono sui gruppi di carico di lavoro in altri pool di risorse.

REQUEST_MAX_MEMORY_GRANT_PERCENT = valore

Specifica la quantità massima di memoria dell'area di lavoro query che una singola richiesta può richiedere dal pool. valore è una percentuale delle dimensioni del pool di risorse definite da MAX_MEMORY_PERCENT. Il valore predefinito è 25.

In SQL Server 2017 (14.x) e versioni precedenti valore è un numero intero e l'intervallo consentito è compreso tra 1 e 100.

A partire da SQL Server 2019 (15.x), il valore può essere frazionariamente usando il tipo di dati float. L'intervallo consentito è compreso tra 0 e 100.

Importante

La quantità specificata si riferisce solo alla memoria dell'area di lavoro query ottenuta tramite concessioni di memoria di query.

Non è consigliabile impostare valore troppo grande (ad esempio, maggiore di 70) perché il server potrebbe non essere in grado di riservare memoria sufficiente per altre query simultanee. Questo può causare un timeout della concessione di memoria errore 8645.

L'impostazione di valore su 0 o un valore ridotto potrebbe impedire l'esecuzione di query con operatori che richiedono memoria dell'area di lavoro, ad esempio sort e hash, dall'esecuzione in gruppi di carico di lavoro definiti dall'utente. Se i requisiti di memoria della query superano il limite definito da questo parametro, si verifica il comportamento seguente:

  • Per i gruppi di carico di lavoro definiti dall'utente, il server tenta di ridurre il grado di parallelismo (DOP) della richiesta (query) fino a quando il requisito di memoria non rientra nel limite o fino a quando dop è uguale a 1. Se il requisito di memoria della query è ancora maggiore del limite, si verifica l'errore 8657 e la query non riesce.
  • Per i gruppi di carico di lavoro internal e default, il server consente alla query di ottenere la memoria necessaria.

In entrambi i casi, 'errore 8645 potrebbe verificarsi se il server non dispone di memoria fisica insufficiente.

REQUEST_MAX_CPU_TIME_SEC = valore

Specifica la quantità massima di tempo cpu, in secondi, che può essere usata da una richiesta. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore è 0, ovvero illimitata.

Per impostazione predefinita, Resource Governor non impedisce a una richiesta di continuare se viene superato il tempo massimo. Tuttavia, viene generato un evento. Per altre informazioni, vedere classe di evento Soglia CPU superata.

A partire da SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e usando flag di traccia 2422, Resource Governor interrompe una richiesta quando viene superato il tempo massimo di CPU.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valore

Specifica il tempo massimo, espresso in secondi, in cui una query può attendere che una concessione di memoria dalla memoria dell'area di lavoro query diventi disponibile. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore, 0 usa un calcolo interno in base al costo della query per determinare il tempo massimo.

Una query non ha sempre esito negativo quando viene raggiunto un timeout di concessione di memoria. Una query ha esito negativo solo se sono in esecuzione troppe query simultanee. In caso contrario, la query potrebbe ottenere solo la concessione di memoria minima, con conseguente riduzione delle prestazioni delle query.

MAX_DOP = valore

Specifica il grado massimo di parallelismo (MAXDOP) per l'esecuzione di query parallele. L'intervallo consentito per valore è compreso tra 0 e 64. L'impostazione predefinita per valore, 0 usa l'impostazione globale.

Per altre informazioni, vedere MAXDOP.

GROUP_MAX_REQUESTS = valore

Specifica il numero massimo di richieste simultanee che possono essere eseguite nel gruppo di carico di lavoro. valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per valore è 0 e consente richieste illimitate. Quando vengono raggiunte le richieste simultanee massime, è possibile creare una sessione in tale gruppo, ma viene inserita in uno stato di attesa fino a quando il numero di richieste simultanee scende al di sotto del valore specificato.

USING { pool_name | [impostazione predefinita] }

Associa il gruppo di carico di lavoro al pool di risorse definito dall'utente identificato da pool_nameo al pool di risorse default. Se non viene specificato pool_name o se l'argomento USING non viene specificato, il gruppo di carico di lavoro è associato al pool di default predefinito.

default è una parola riservata e, se specificata in USING, deve essere racchiusa tra parentesi quadre ([]) o virgolette ("").

I pool di risorse predefiniti e i gruppi di carico di lavoro usano tutti i nomi minuscoli, ad esempio default. Usare il default minuscolo nei server che usano regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole considerano default, Defaulte DEFAULT come lo stesso valore.

Osservazioni

ALTER WORKLOAD GROUP è consentito nel gruppo di carico di lavoro default, ma non nel gruppo di internal.

Le modifiche apportate alla configurazione del gruppo di carico di lavoro non diventano effettive finché non viene eseguita ALTER RESOURCE GOVERNOR RECONFIGURE.

Per altre informazioni, vedere resource governor e gruppo di carico di lavoro di Resource Governor.

MAXDOP

Per una determinata query, la MAXDOP effettiva viene determinata nel modo seguente:

  • MAXDOP come hint per la query viene rispettato purché non superi l'impostazione del gruppo di carico di lavoro MAX_DOP.
  • MAXDOP come hint per la query esegue sempre l'override della configurazione del server max degree of parallelism. Per altre informazioni, vedere configurazione del server : max degree of parallelism.
  • Il gruppo di carico di lavoro MAX_DOP esegue l'override della configurazione del server max degree of parallelism e della configurazione con ambito database MAXDOP.

Il limite di MAXDOP è impostato per ogni attività . Non è una richiesta per o per limite di query. Durante un'esecuzione di una query parallela, una singola richiesta può generare più attività assegnate a un'utilità di pianificazione . Per altre informazioni, vedere la guida all'architettura thread e attività.

Quando una query è contrassegnata come seriale in fase di compilazione (MAXDOP = 1), non può essere eseguita con parallelismo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione di configurazione del server. Dopo MAXDOP viene determinato per una query, può essere ridotto solo a causa della pressione della memoria. La riconfigurazione del gruppo di carico di lavoro non influisce sulle query in attesa nella coda delle concessioni di memoria.

Piani memorizzati nella cache

Quando si modifica un'impostazione che influisce su un piano, ad esempio MAX_DOP, la nuova impostazione diventa effettiva nei piani memorizzati nella cache in precedenza solo dopo l'esecuzione di DBCC FREEPROCCACHE (<pool_name>), dove <pool_name> è il nome di un pool di risorse di Resource Governor usato dal gruppo di carico di lavoro corrente.

  • Se si modifica MAX_DOP su 1, l'esecuzione di DBCC FREEPROCCACHE non è necessaria perché i piani paralleli possono essere eseguiti in modalità seriale. Tuttavia, un piano di questo tipo potrebbe essere meno efficiente di un piano compilato come piano seriale.
  • Se non è necessario modificare MAX_DOP da 1 a 0 o da un valore maggiore di 1, l'esecuzione di DBCC FREEPROCCACHE. Tuttavia, i piani seriali non possono essere eseguiti in parallelo, quindi la cancellazione della rispettiva cache consente la compilazione di nuovi piani usando il parallelismo.

Avvertimento

La cancellazione dei piani memorizzati nella cache da un pool di risorse associato a più gruppi di carico di lavoro influisce su tutti i gruppi di carico di lavoro usando il pool di risorse definito dall'utente identificato da <pool_name>.

Creazione dell'indice

Per motivi di prestazioni, la creazione dell'indice può usare un'area di lavoro di memoria superiore a quella concessa inizialmente. Resource Governor supporta questa gestione speciale. Tuttavia, la concessione iniziale e le eventuali concessioni di memoria aggiuntive sono limitate dalle impostazioni del gruppo di carico di lavoro e del pool di risorse.

La memoria utilizzata per creare un indice non allineato in una tabella partizionata è proporzionale al numero di partizioni coinvolte. Se la memoria totale richiesta supera il limite per query applicato dall'impostazione del gruppo di carico di lavoro REQUEST_MAX_MEMORY_GRANT_PERCENT, la creazione dell'indice potrebbe non riuscire. Poiché il gruppo di carico di lavoro default consente a una query di superare il limite per ogni query con la memoria minima necessaria per l'avvio per la compatibilità con le versioni precedenti, potrebbe essere possibile creare lo stesso indice usando il gruppo di carico di lavoro default se il pool di risorse default ha memoria totale sufficiente.

Autorizzazioni

Richiede l'autorizzazione CONTROL SERVER.

Esempi

Nell'esempio seguente viene illustrato come modificare l'importanza delle richieste nel gruppo predefinito da MEDIUM a LOW.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

Nell'esempio seguente viene illustrato come spostare un gruppo di carico di lavoro dal pool attualmente presente nel pool di default.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

dell'istanza gestita di SQL

* Azure Synapse
Analisi *
 

 

Azure Synapse Analytics

Modifica un gruppo di carico di lavoro esistente.

Per altre informazioni sul comportamento ALTER WORKLOAD GROUP in un sistema con richieste in esecuzione e in coda, vedere la sezione ALTER WORKLOAD GROUP comportamento seguente.

Le restrizioni applicate per CREATE WORKLOAD GROUP si applicano anche a ALTER WORKLOAD GROUP. Prima di modificare i parametri, eseguire una query sys.workload_management_workload_groups per assicurarsi che i valori siano entro intervalli accettabili.

Sintassi

ALTER WORKLOAD GROUP group_name
WITH
([ MIN_PERCENTAGE_RESOURCE = value ]
  [ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
  [ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
  [ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
  [ ; ]

Argomenti

group_name

Nome del gruppo di carico di lavoro definito dall'utente esistente modificato. group_name non è modificabile.

MIN_PERCENTAGE_RESOURCE = valore

valore è un intervallo intero compreso tra 0 e 100. Quando si modifica MIN_PERCENTAGE_RESOURCE, la somma di MIN_PERCENTAGE_RESOURCE in tutti i gruppi di carico di lavoro non può superare i 100. Per modificare MIN_PERCENTAGE_RESOURCE è necessario completare tutte le query in esecuzione nel gruppo di carico di lavoro prima del completamento del comando. Per altre informazioni, vedere la sezione comportamento di ALTER WORKLOAD GROUP in questo articolo.

CAP_PERCENTAGE_RESOURCE = valore

valore è un intervallo intero compreso tra 1 e 100. Il valore per CAP_PERCENTAGE_RESOURCE deve essere maggiore di MIN_PERCENTAGE_RESOURCE. Per modificare CAP_PERCENTAGE_RESOURCE è necessario completare tutte le query in esecuzione nel gruppo di carico di lavoro prima del completamento del comando. Per altre informazioni, vedere la sezione comportamento di ALTER WORKLOAD GROUP in questo articolo.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = valore

valore è un decimale con un intervallo compreso tra 0,75 e 100,00. Il valore per REQUEST_MIN_RESOURCE_GRANT_PERCENT deve essere un fattore di MIN_PERCENTAGE_RESOURCE e deve essere minore di CAP_PERCENTAGE_RESOURCE.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = valore

valore è un valore decimale e deve essere maggiore di REQUEST_MIN_RESOURCE_GRANT_PERCENT.

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Modifica l'importanza predefinita di una richiesta per il gruppo di carico di lavoro.

QUERY_EXECUTION_TIMEOUT_SEC = valore

Modifica il tempo massimo, espresso in secondi, che una query può essere eseguita prima che venga annullata. Il valore deve essere 0 o un numero intero positivo. L'impostazione predefinita per il valore è 0, ovvero illimitata.

Autorizzazioni

È richiesta 'autorizzazione CONTROL DATABASE.

Esempio

L'esempio seguente controlla i valori nella vista del catalogo per un gruppo di carico di lavoro denominato wgDataLoadse modifica i valori.

SELECT *
FROM sys.workload_management_workload_groups
WHERE [name] = 'wgDataLoads'

ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE            = 40
, CAP_PERCENTAGE_RESOURCE            = 80
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )

Comportamento ALTER WORKLOAD GROUP

In qualsiasi momento esistono tre tipi di richieste nel sistema:

  • Richieste che non sono state ancora classificate.
  • Richieste classificate e in attesa di blocchi di oggetti o risorse di sistema.
  • Richieste classificate ed in esecuzione.

In base alle proprietà di un gruppo di carico di lavoro modificato, la tempistica di quando le impostazioni diventano effettive sarà diversa.

Importanza o query_execution_timeout

Per l'importanza e le proprietà query_execution_timeout, le richieste non classificate prelevano i nuovi valori di configurazione. L'attesa e l'esecuzione delle richieste viene eseguita con la configurazione precedente. La richiesta di ALTER WORKLOAD GROUP viene eseguita immediatamente indipendentemente dal fatto che nel gruppo di carico di lavoro siano in esecuzione query.

REQUEST_MIN_RESOURCE_GRANT_PERCENT o REQUEST_MAX_RESOURCE_GRANT_PERCENT

Per REQUEST_MIN_RESOURCE_GRANT_PERCENT e REQUEST_MAX_RESOURCE_GRANT_PERCENT, l'esecuzione delle richieste viene eseguita con la configurazione precedente. Le richieste in attesa e le richieste non classificate prelevano i nuovi valori di configurazione. La richiesta di ALTER WORKLOAD GROUP viene eseguita immediatamente indipendentemente dal fatto che nel gruppo di carico di lavoro siano in esecuzione query.

MIN_PERCENTAGE_RESOURCE o CAP_PERCENTAGE_RESOURCE

Per MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE, l'esecuzione delle richieste viene eseguita con la configurazione precedente. Le richieste in attesa e le richieste non classificate prelevano i nuovi valori di configurazione.

La modifica di MIN_PERCENTAGE_RESOURCE e CAP_PERCENTAGE_RESOURCE richiede lo svuotamento delle richieste in esecuzione nel gruppo di carico di lavoro che viene modificato. Quando si riducono MIN_PERCENTAGE_RESOURCE, le risorse liberate vengono restituite al pool di condivisione consentendo alle richieste provenienti da altri gruppi di carico di lavoro la possibilità di usare. Viceversa, l'aumento del MIN_PERCENTAGE_RESOURCE attenderà fino al completamento delle richieste che utilizzano solo le risorse necessarie dal pool condiviso. L'operazione ALTER WORKLOAD GROUP avrà accesso prioritario alle risorse condivise rispetto ad altre richieste in attesa di essere eseguite nel pool condiviso. Se la somma di MIN_PERCENTAGE_RESOURCE supera 100%, la richiesta di ALTER WORKLOAD GROUP ha esito negativo immediatamente.

Comportamento di blocco

La modifica di un gruppo di carico di lavoro richiede un blocco globale in tutti i gruppi di carico di lavoro. Una richiesta di modifica di un gruppo di carico di lavoro è in coda dietro le richieste di creazione o eliminazione del gruppo di carico di lavoro già inviate. Se un batch di istruzioni alter viene inviato contemporaneamente, vengono elaborate nell'ordine in cui vengono inviate.

Vedere anche