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 *
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
, Default
e 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
edefault
, 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
, Default
e 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 lavoroMAX_DOP
. -
MAXDOP
come hint per la query esegue sempre l'override della configurazione del servermax 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 servermax degree of parallelism
e della configurazione con ambito databaseMAXDOP
.
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 diDBCC 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 diDBCC 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;
Contenuto correlato
* 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
, Default
e 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
edefault
, 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
, Default
e 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 lavoroMAX_DOP
. -
MAXDOP
come hint per la query esegue sempre l'override della configurazione del servermax 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 servermax degree of parallelism
e della configurazione con ambito databaseMAXDOP
.
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 diDBCC 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 diDBCC 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;
Contenuto correlato
* 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
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
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.