CREATE WORKLOAD GROUP (Transact-SQL)
Selezionare un prodotto
Nella riga seguente selezionare il nome del prodotto a cui si è interessati. Verranno visualizzate solo le informazioni per tale prodotto.
* SQL Server *
SQL Server e Istanza gestita di SQL
Crea un gruppo di carico di lavoro di Resource Governor e associa il gruppo di carico di lavoro a un pool di risorse di Resource Governor.
Resource Governor non è disponibile in ogni edizione di SQL Server. Per un elenco delle funzionalità supportate dalle varie edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2017.
Nota
Per Istanza gestita di SQL di Azure, è necessario essere nel contesto del database master
per modificare la configurazione di Resource Governor.
Convenzioni di sintassi Transact-SQL.
Sintassi
CREATE WORKLOAD GROUP group_name
[ 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] ]
[ [ , ] EXTERNAL external_pool_name | [default] ]
} ]
[ ; ]
Argomenti
group_name
Nome definito dall'utente per il gruppo di carico di lavoro. group_name è alfanumerico, può contenere fino a 128 caratteri, deve essere univoco all'interno di un'istanza del motore di database e deve essere conforme alle regole per gli identificatori di database .
IMPORTANCE = { LOW | MEDIUM | HIGH }
Specifica l'importanza relativa di una richiesta nel gruppo del 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 = value
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 = value
Viene specificato il tempo massimo della CPU, in secondi, utilizzabile da una richiesta. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value è 0, ovvero un valore illimitato.
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 CPU Threshold Exceeded.
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 = value
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. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value, 0, usa un calcolo interno basato sul 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 = value
Specifica il grado massimo di parallelismo (MAXDOP
) per l'esecuzione di query parallele. L'intervallo consentito per value è compreso tra 0 e 64. L'impostazione predefinita per value, 0, usa l'impostazione globale.
Per altre informazioni, vedere MAXDOP.
GROUP_MAX_REQUESTS = value
Viene specificato il numero massimo di richieste simultanee eseguibili nel gruppo del carico di lavoro. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value è 0 e consente un numero illimitato di richieste. 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.
EXTERNAL external_pool_name | [impostazione predefinita]
Si applica a: SQL Server 2016 (13.x) e versioni successive.
Il gruppo del carico di lavoro può specificare un pool di risorse esterne. È possibile definire un gruppo di carico di lavoro e associarlo a due pool:
- Pool di risorse per i carichi di lavoro del motore di database.
- Un pool di risorse esterne per i processi esterni. Per altre informazioni, vedere sp_execute_external_script.
Osservazioni:
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 MAXDOP
viene impostato per attività. Non è un limite per richiesta o per 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.
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
.
Esempio
Crea un gruppo di carico di lavoro denominato newReports
nel pool di risorse default
e limita la concessione di memoria massima, il tempo massimo di CPU per una richiesta e MAXDOP
.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Contenuto correlato
- Esercitazione: Esempi di configurazione di Resource Governor e procedure consigliate
- Resource Governor
- gruppo di carico di lavoro di Resource Governor
- Creare un gruppo di carico di lavoro
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- CREATE RESOURCE POOL
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- ALTER RESOURCE GOVERNOR
* Istanza gestita di SQL *
SQL Server e Istanza gestita di SQL
Crea un gruppo di carico di lavoro di Resource Governor e associa il gruppo di carico di lavoro a un pool di risorse di Resource Governor.
Resource Governor non è disponibile in ogni edizione di SQL Server. Per un elenco delle funzionalità supportate dalle varie edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2017.
Nota
Per Istanza gestita di SQL di Azure, è necessario essere nel contesto del database master
per modificare la configurazione di Resource Governor.
Convenzioni di sintassi Transact-SQL.
Sintassi
CREATE WORKLOAD GROUP group_name
[ 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] ]
[ [ , ] EXTERNAL external_pool_name | [default] ]
} ]
[ ; ]
Argomenti
group_name
Nome definito dall'utente per il gruppo di carico di lavoro. group_name è alfanumerico, può contenere fino a 128 caratteri, deve essere univoco all'interno di un'istanza del motore di database e deve essere conforme alle regole per gli identificatori di database .
IMPORTANCE = { LOW | MEDIUM | HIGH }
Specifica l'importanza relativa di una richiesta nel gruppo del 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 = value
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 = value
Viene specificato il tempo massimo della CPU, in secondi, utilizzabile da una richiesta. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value è 0, ovvero un valore illimitato.
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 CPU Threshold Exceeded.
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 = value
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. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value, 0, usa un calcolo interno basato sul 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 = value
Specifica il grado massimo di parallelismo (MAXDOP
) per l'esecuzione di query parallele. L'intervallo consentito per value è compreso tra 0 e 64. L'impostazione predefinita per value, 0, usa l'impostazione globale.
Per altre informazioni, vedere MAXDOP.
GROUP_MAX_REQUESTS = value
Viene specificato il numero massimo di richieste simultanee eseguibili nel gruppo del carico di lavoro. value deve essere 0 o un valore intero positivo. L'impostazione predefinita per value è 0 e consente un numero illimitato di richieste. 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.
EXTERNAL external_pool_name | [impostazione predefinita]
Si applica a: SQL Server 2016 (13.x) e versioni successive.
Il gruppo del carico di lavoro può specificare un pool di risorse esterne. È possibile definire un gruppo di carico di lavoro e associarlo a due pool:
- Pool di risorse per i carichi di lavoro del motore di database.
- Un pool di risorse esterne per i processi esterni. Per altre informazioni, vedere sp_execute_external_script.
Osservazioni:
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 MAXDOP
viene impostato per attività. Non è un limite per richiesta o per 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.
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
.
Esempio
Crea un gruppo di carico di lavoro denominato newReports
nel pool di risorse default
e limita la concessione di memoria massima, il tempo massimo di CPU per una richiesta e MAXDOP
.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Contenuto correlato
- Esercitazione: Esempi di configurazione di Resource Governor e procedure consigliate
- Resource Governor
- gruppo di carico di lavoro di Resource Governor
- Creare un gruppo di carico di lavoro
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- CREATE RESOURCE POOL
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- ALTER RESOURCE GOVERNOR
* Azure Synapse
Analytics *
Azure Synapse Analytics
Crea un gruppo di carico di lavoro. I gruppi di carico di lavoro sono contenitori per un set di richieste e su di essi si basa la configurazione della gestione del carico di lavoro in un sistema. I gruppi di carico di lavoro consentono di riservare risorse per l'isolamento del carico di lavoro, contengono risorse, definiscono le risorse per ogni richiesta e rispettano le regole di esecuzione. Al termine dell'esecuzione dell'istruzione, le impostazioni sono attive.
Convenzioni relative alla sintassi Transact-SQL
CREATE 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 ] )
[ ; ]
group_name
Specifica il nome con cui viene identificato il gruppo di carico di lavoro.
group_name è un sysname. Può essere composto da un massimo di 128 caratteri e deve essere univoco all'interno dell'istanza.
MIN_PERCENTAGE_RESOURCE = value
Specifica un'allocazione delle risorse minima garantita per questo gruppo di carico di lavoro non condivisa con altri gruppi di carico di lavoro. La memoria è l'unica risorsa controllata da questo parametro. Il valore è un numero intero compreso tra 0 e 100. La somma di min_percentage_resource in tutti i gruppi di carico di lavoro non può essere superiore a 100. Il valore di min_percentage_resource non può essere maggiore di cap_percentage_resource. Sono consentiti valori minimi effettivi per ogni livello di servizio. Per altre informazioni dettagliate, vedere Valori effettivi.
CAP_PERCENTAGE_RESOURCE = value
Specifica l'utilizzo massimo delle risorse per tutte le richieste in un gruppo di carico di lavoro. Questo parametro consente di limitare sia le risorse della CPU che di memoria. L'intervallo di numeri interi consentito per il valore è compreso tra 1 e 100. Il valore di cap_percentage_resource deve essere maggiore di min_percentage_resource. Il valore effettivo per cap_percentage_resource può essere ridotto se min_percentage_resource è impostato su un valore maggiore di zero in altri gruppi di carico di lavoro.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
Imposta la quantità minima di risorse allocate per ogni richiesta. La memoria è l'unica risorsa controllata da questo parametro. Il valore è un parametro obbligatorio con un intervallo decimale compreso tra 0,75 e 100,00. Il valore di request_min_resource_grant_percent deve essere un multiplo di 0,25, deve essere un fattore di min_percentage_resource ed essere minore di cap_percentage_resource. Sono consentiti valori minimi effettivi per ogni livello di servizio. Per altre informazioni dettagliate, vedere Valori effettivi.
Ad esempio:
CREATE WORKLOAD GROUP wgSample
WITH
( MIN_PERCENTAGE_RESOURCE = 26 -- integer value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
, CAP_PERCENTAGE_RESOURCE = 100 )
Si considerino i valori usati per le classi di risorse come linee guida per request_min_resource_grant_percent. La tabella seguente contiene le allocazioni delle risorse per la seconda generazione.
Classe di risorse | Percentuale di risorse |
---|---|
Smallrc | %3 |
Mediumrc | 10% |
Largerc | 22% |
Xlargerc | 70% |
REQUEST_MAX_RESOURCE_GRANT_PERCENT = value
Imposta la quantità massima di risorse allocate per ogni richiesta. La memoria è l'unica risorsa controllata da questo parametro. Il valore è un parametro decimale facoltativo con un valore predefinito uguale a request_min_resource_grant_percent. Il valore deve essere maggiore o uguale a request_min_resource_grant_percent. Quando il valore di request_max_resource_grant_percent è maggiore di request_min_resource_grant_percent e sono disponibili risorse di sistema, vengono allocate risorse aggiuntive a una richiesta.
IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }
Specifica l'importanza predefinita di una richiesta per il gruppo del carico di lavoro. L'importanza è compresa fra le seguenti, NORMAL è l'impostazione predefinita:
- BASSA
- BELOW_NORMAL
- NORMAL (valore predefinito)
- ABOVE_NORMAL
- ELEVATO
L'importanza impostata nel gruppo di carico di lavoro è un'importanza predefinita per tutte le richieste nel gruppo di carico di lavoro. Un utente può anche impostare l'importanza a livello di classificatore, eseguendo in questo modo l'override dell'impostazione dell'importanza del gruppo di carico di lavoro, che consente di differenziare l'importanza permettendo alle richieste di accedere più rapidamente alle risorse non riservate. Quando la somma di min_percentage_resource tra gruppi di carico di lavoro è inferiore a 100, sono presenti risorse non riservate che vengono assegnate in base all'importanza.
QUERY_EXECUTION_TIMEOUT_SEC = value
Specifica il tempo massimo di esecuzione di una query, in secondi, prima che venga annullata.
value deve essere 0 o un valore intero positivo. L'impostazione predefinita per il valore è 0, che la query non raggiunge mai il timeout. QUERY_EXECUTION_TIMEOUT_SEC conteggia una volta che la query è in esecuzione, non quando la query viene accodata.
Osservazioni:
I gruppi di carico di lavoro corrispondenti alle classi di risorse vengono creati automaticamente per la compatibilità con le versioni precedenti. Non è possibile eliminare questi gruppi di carico di lavoro definiti dal sistema. È possibile creare altri 8 gruppi di carico di lavoro definiti dall'utente.
Se viene creato un gruppo di carico di lavoro con min_percentage_resource
maggiore di zero, l'istruzione CREATE WORKLOAD GROUP
verrà accodata finché non sono disponibili risorse sufficienti per creare il gruppo di carico di lavoro.
Valori effettivi
I parametri min_percentage_resource
, cap_percentage_resource
, request_min_resource_grant_percent
e request_max_resource_grant_percent
hanno valori effettivi che vengono modificati nel contesto del livello di servizio corrente e della configurazione di altri gruppi del carico di lavoro.
Il parametro request_min_resource_grant_percent
ha un valore effettivo poiché sono necessarie risorse minime per ogni query, a seconda del livello di servizio. Ad esempio, al livello di servizio più basso, DW100c, è necessario un minimo di 25% di risorse per ogni richiesta. Se il gruppo di carico di lavoro è configurato con il 3% request_min_resource_grant_percent
e request_max_resource_grant_percent
, i valori effettivi per entrambi i parametri si adattano al 25% all'avvio dell'istanza. Se l'istanza viene aumentata a DW1000c, i valori configurati ed effettivi per entrambi i parametri sono al 3% poiché il 3% è il valore minimo supportato al livello di servizio. Se l'istanza viene aumentata a un valore maggiore di DW1000c, i valori configurati ed effettivi per entrambi i parametri rimangono al 3%. Per altri dettagli sui valori effettivi ai diversi livelli di servizio, vedere la tabella seguente.
Livello di servizio | Valore effettivo mio per REQUEST_MIN_RESOURCE_GRANT_PERCENT | Numero massimo di query simultanee |
---|---|---|
DW100c | 25% | 4 |
DW200c | 12,5% | 8 |
DW300c | %8 | 12 |
DW400c | 6,25% | 16 |
DW500c | %5 | 20 |
DW1000c | %3 | 32 |
DW1500c | %3 | 32 |
DW2000c | 2% | 48 |
DW2500c | 2% | 48 |
DW3000c | 1,5% | 64 |
DW5000c | 1,5% | 64 |
DW6000c | 0,75% | 128 |
DW7500c | 0,75% | 128 |
DW10000c | 0,75% | 128 |
DW15000c | 0,75% | 128 |
DW30000c | 0,75% | 128 |
Il parametro min_percentage_resource
deve essere maggiore o uguale al valore request_min_resource_grant_percent
effettivo. Il valore di un gruppo di carico di lavoro con min_percentage_resource
inferiore al valore min_percentage_resource
effettivo ha il valore adattato a zero in fase di esecuzione. In questo caso, le risorse configurate per min_percentage_resource
sono condivisibili in tutti i gruppi di carico di lavoro. Ad esempio, il gruppo di carico di lavoro wgAdHoc
con min_percentage_resource
del 10% in esecuzione in DW1000c avrà un valore min_percentage_resource
effettivo del 10% (3% è il valore minimo supportato in DW1000c).
wgAdhoc
in DW100c avrà un valore min_percentage_resource effettivo dello 0%. Il 10% configurato per wgAdhoc
verrà condiviso tra tutti i gruppi di carico di lavoro.
Il parametro cap_percentage_resource
ha anche un valore effettivo. Se un gruppo di carico di lavoro wgAdhoc
è configurato con una cap_percentage_resource
del 100% e viene creato un altro gruppo di carico di lavoro wgDashboards
con min_percentage_resource
del 25%, il valore cap_percentage_resource
effettivo per wgAdhoc
diventa 75%.
Il modo più semplice per conoscere i valori di runtime per i gruppi di carico di lavoro consiste nell'eseguire una query sulla vista di sistema sys.dm_workload_management_workload_groups_stats.
Autorizzazioni
È richiesta l'autorizzazione CONTROL DATABASE