Condividi tramite


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 del carico di lavoro di Resource Governor e lo associa al 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.

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 di SQL Server 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. L'importanza è compresa fra le seguenti, MEDIUM è l'impostazione predefinita:

  • BASSA
  • MEDIUM (valore predefinito)
  • ELEVATO

Nota

Internamente, ogni impostazione dell'importanza viene memorizzata come un numero usato per i calcoli.

IMPORTANCE è locale per il pool di risorse. 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 un altro pool di risorse.

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

Specifica la quantità massima di memoria che una singola richiesta può accettare dal pool. value è una percentuale relativa alla dimensione del pool di risorse specificata da MAX_MEMORY_PERCENT. Il valore predefinito è 25.

value è un numero intero fino a SQL Server 2017 (14.x) e l'intervallo consentito è compreso tra 1 e 100. A partire da SQL Server 2019 (15.x), il valore è un tipo di dati float e l'intervallo consentito è compreso tra 0 e 100.

Importante

La quantità specificata si riferisce solo alla memoria di concessione per l'esecuzione della query.

Impostando value su 0 si impedisce l'esecuzione delle query con operazioni SORT e HASH JOIN nei gruppi del carico di lavoro definiti dall'utente.

Non è consigliabile impostare value su un valore maggiore di 70 perché è possibile che il server non possa riservare una quantità sufficiente di memoria se sono in esecuzione altre query simultaneamente. È possibile che venga restituito l'errore di timeout query 8645.

Se i requisiti di memoria della query superano il limite specificato da questo parametro, il server effettua le operazioni seguenti:

  • Per i gruppi di carico di lavoro definiti dall'utente, il server tenta di ridurre il grado di parallelismo delle query fino a quando i requisiti di memoria non rientrano nel limite o fino a quando il grado di parallelismo non è uguale a 1. Se i requisiti di memoria delle query sono ancora superiori al limite, si verifica l'errore 8657.

  • Per i gruppi di carico di lavoro interni e predefiniti, il server permette alla query di ottenere la memoria necessaria.

In entrambi i casi, è possibile che si verifichi l'errore di timeout 8645 se il server non dispone di memoria fisica sufficiente.

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.

Nota

Per impostazione predefinita, Resource Governor non impedirà la continuazione di una richiesta se viene superato il tempo massimo, ma verrà generato un evento. Per altre informazioni, vedere Classe di evento CPU Threshold Exceeded.

Importante

A partire da SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e con l'uso del flag di traccia 2422, Resource Governor interrompe una richiesta se viene superato il tempo massimo.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

Specifica il tempo massimo, in secondi, che una query può attendere prima che una concessione di memoria (memoria buffer di lavoro) 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.

Nota

L'esecuzione della query può riuscire anche in caso di timeout relativo alla concessione di memoria. L'esito negativo di una query si verifica solo se sono in esecuzione più query simultaneamente. In caso contrario, la query può ottenere solo la minima concessione di memoria, con una conseguente riduzione delle prestazioni.

MAX_DOP = value

Specifica il massimo grado di parallelismo (MAXDOP) per l'esecuzione di richieste parallele. value deve essere 0 o un valore intero positivo. L'intervallo consentito per value è compreso tra 0 e 64. L'impostazione predefinita per value, 0, usa l'impostazione globale.

MAX_DOP viene gestito nel modo seguente:

  • MAX_DOP, inteso come hint per la query, viene rispettato fintanto che non supera il valore MAX_DOP del gruppo di carico di lavoro.

  • MAX_DOP, inteso come hint per la query, ha sempre la precedenza sull'opzione "max degree of parallelism" di sp_configure.

  • Il valore MAX_DOP del gruppo di carico di lavoro ha sempre la precedenza sull'opzione "max degree of parallelism" di sp_configure.

  • Se la query è contrassegnata come seriale (MAX_DOP = 1) in fase di compilazione, non può essere modificata in parallelo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione sp_configure.

Dopo la configurazione di DOP, è possibile diminuire solo la richiesta di memoria concessa. La riconfigurazione del gruppo di carico di lavoro non è visibile durante l'attesa nella coda della memoria concessa.

Nota

Il gruppo di carico di lavoro MAX_DOP esegue l'override della configurazione del server per il grado massimo di parallelismo e la MAXDOP configurazione con ambito database.

Suggerimento

Per eseguire questa operazione a livello di query, usare l'hint per la MAXDOP query. L'impostazione del massimo grado di parallelismo come hint per la query è efficace finché non supera il valore MAX_DOP del gruppo di carico di lavoro. Se l'hint per la query MAXDOP supera il valore configurato usando Resource Governor, il motore di database di SQL Server usa il valore MAX_DOP di Resource Governor. L'hint per la query MAXDOP esegue sempre l'override della configurazione server per il massimo grado di parallelismo .

Per eseguire questa operazione a livello di database, usare la MAXDOP configurazione con ambito database.

Per eseguire questa operazione a livello di server, usare l'opzione di configurazione server relativa al massimo grado di parallelismo (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 numero intero positivo. L'impostazione predefinita per value è 0 e consente un numero illimitato di richieste. Quando viene raggiunto il numero massimo di richieste simultanee, un utente in quel gruppo può effettuare l'accesso, ma viene posizionato in uno stato di attesa fino a quando le richieste simultanee non sono inferiori al valore specificato.

USING { pool_name | "default" }

Associa il gruppo del carico di lavoro al pool di risorse definito dall'utente identificato da pool_name. In questo modo, il gruppo del carico di lavoro viene inserito nel pool di risorse. Se non viene specificato pool_name o se l'argomento USING non viene usato, il gruppo di carico di lavoro viene inserito nel pool predefinito di Resource Governor.

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

Nota

Per i gruppi di carico di lavoro e i pool di risorse predefiniti vengono utilizzati sempre nomi scritti in lettere minuscole, ad esempio "default". Questo aspetto deve essere preso in considerazione per i server in cui vengono utilizzate regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole, ad esempio SQL_Latin1_General_CP1_CI_AS, tratteranno "default" e "Default" come lo stesso.

EXTERNAL external_pool_name | "default"

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 del lavoro e associarlo a due pool:

Osservazioni:

Quando si usa REQUEST_MEMORY_GRANT_PERCENT, per la creazione dell'indice è possibile usare più memoria dell'area di lavoro di quella concessa inizialmente, al fine di migliorare le prestazioni. Tale gestione speciale è supportata da Resource Governor in SQL Server. La concessione iniziale, così come qualsiasi concessione supplementare, è tuttavia limitata dalle impostazioni del pool di risorse e del gruppo di carico di lavoro.

Il limite MAX_DOP viene impostato per attività. Non è un limite per richiesta o per query. Ciò significa che durante l'esecuzione di query parallele, una singola richiesta può generare più task che vengono assegnate a un pianificatore. Per altre informazioni, vedere Guida sull'architettura dei thread e delle attività.

Quando MAX_DOP viene usata e una query viene contrassegnata come seriale in fase di compilazione, non può essere modificata in parallelo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione di configurazione del server. Dopo che è stato configurato, il valore MAX_DOP può essere diminuito solo in caso di utilizzo elevato della memoria. La riconfigurazione del gruppo di carico di lavoro non è visibile durante l'attesa nella coda della memoria concessa.

Creazione dell'indice in una tabella partizionata

La quantità di memoria utilizzata per la creazione dell'indice in una tabella partizionata non allineata è proporzionale al numero di partizioni coinvolte. Se la memoria totale necessaria supera il limite per query REQUEST_MAX_MEMORY_GRANT_PERCENT imposto dal gruppo di carico di lavoro di Resource Governor, la creazione dell'indice potrebbe non riuscire. Poiché il "default" gruppo di carico di lavoro consente a una query di superare il limite per query con la memoria minima richiesta, l'utente potrebbe essere in grado di eseguire la stessa creazione dell'indice nel "default" gruppo di carico di lavoro, se il "default" pool di risorse dispone di memoria totale sufficiente configurato per eseguire tale query.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempio

Creare un gruppo di carico di lavoro denominato newReports che usa le impostazioni predefinite di Resource Governor e si trova nel pool predefinito di Resource Governor. L'esempio specifica il default pool, ma questo non è obbligatorio.

CREATE WORKLOAD GROUP newReports
WITH
    (REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
      , REQUEST_MAX_CPU_TIME_SEC = 100
      , MAX_DOP = 4)
USING "default" ;
GO

Vedi anche

* Istanza gestita di SQL *  

 

SQL Server e Istanza gestita di SQL

Crea un gruppo del carico di lavoro di Resource Governor e lo associa al 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.

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 di SQL Server 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. L'importanza è compresa fra le seguenti, MEDIUM è l'impostazione predefinita:

  • BASSA
  • MEDIUM (valore predefinito)
  • ELEVATO

Nota

Internamente, ogni impostazione dell'importanza viene memorizzata come un numero usato per i calcoli.

IMPORTANCE è locale per il pool di risorse. 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 un altro pool di risorse.

REQUEST_MAX_MEMORY_GRANT_PERCENT = value

Specifica la quantità massima di memoria che una singola richiesta può accettare dal pool. value è una percentuale relativa alla dimensione del pool di risorse specificata da MAX_MEMORY_PERCENT. Il valore predefinito è 25.

value è un numero intero fino a SQL Server 2017 (14.x) e l'intervallo consentito è compreso tra 1 e 100. A partire da SQL Server 2019 (15.x), il valore è un tipo di dati float e l'intervallo consentito è compreso tra 0 e 100.

Importante

La quantità specificata si riferisce solo alla memoria di concessione per l'esecuzione della query.

Impostando value su 0 si impedisce l'esecuzione delle query con operazioni SORT e HASH JOIN nei gruppi del carico di lavoro definiti dall'utente.

Non è consigliabile impostare value su un valore maggiore di 70 perché è possibile che il server non possa riservare una quantità sufficiente di memoria se sono in esecuzione altre query simultaneamente. È possibile che venga restituito l'errore di timeout query 8645.

Se i requisiti di memoria della query superano il limite specificato da questo parametro, il server effettua le operazioni seguenti:

  • Per i gruppi di carico di lavoro definiti dall'utente, il server tenta di ridurre il grado di parallelismo delle query fino a quando i requisiti di memoria non rientrano nel limite o fino a quando il grado di parallelismo non è uguale a 1. Se i requisiti di memoria delle query sono ancora superiori al limite, si verifica l'errore 8657.

  • Per i gruppi di carico di lavoro interni e predefiniti, il server permette alla query di ottenere la memoria necessaria.

In entrambi i casi, è possibile che si verifichi l'errore di timeout 8645 se il server non dispone di memoria fisica sufficiente.

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.

Nota

Per impostazione predefinita, Resource Governor non impedirà la continuazione di una richiesta se viene superato il tempo massimo, ma verrà generato un evento. Per altre informazioni, vedere Classe di evento CPU Threshold Exceeded.

Importante

A partire da SQL Server 2016 (13.x) SP2 e SQL Server 2017 (14.x) CU3 e con l'uso del flag di traccia 2422, Resource Governor interrompe una richiesta se viene superato il tempo massimo.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value

Specifica il tempo massimo, in secondi, che una query può attendere prima che una concessione di memoria (memoria buffer di lavoro) 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.

Nota

L'esecuzione della query può riuscire anche in caso di timeout relativo alla concessione di memoria. L'esito negativo di una query si verifica solo se sono in esecuzione più query simultaneamente. In caso contrario, la query può ottenere solo la minima concessione di memoria, con una conseguente riduzione delle prestazioni.

MAX_DOP = value

Specifica il massimo grado di parallelismo (MAXDOP) per l'esecuzione di richieste parallele. value deve essere 0 o un valore intero positivo. L'intervallo consentito per value è compreso tra 0 e 64. L'impostazione predefinita per value, 0, usa l'impostazione globale.

MAX_DOP viene gestito nel modo seguente:

  • MAX_DOP, inteso come hint per la query, viene rispettato fintanto che non supera il valore MAX_DOP del gruppo di carico di lavoro.

  • MAX_DOP, inteso come hint per la query, ha sempre la precedenza sull'opzione "max degree of parallelism" di sp_configure.

  • Il valore MAX_DOP del gruppo di carico di lavoro ha sempre la precedenza sull'opzione "max degree of parallelism" di sp_configure.

  • Se la query è contrassegnata come seriale (MAX_DOP = 1) in fase di compilazione, non può essere modificata in parallelo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione sp_configure.

Dopo la configurazione di DOP, è possibile diminuire solo la richiesta di memoria concessa. La riconfigurazione del gruppo di carico di lavoro non è visibile durante l'attesa nella coda della memoria concessa.

Nota

Il gruppo di carico di lavoro MAX_DOP esegue l'override della configurazione del server per il grado massimo di parallelismo e la MAXDOP configurazione con ambito database.

Suggerimento

Per eseguire questa operazione a livello di query, usare l'hint per la MAXDOP query. L'impostazione del massimo grado di parallelismo come hint per la query è efficace finché non supera il valore MAX_DOP del gruppo di carico di lavoro. Se l'hint per la query MAXDOP supera il valore configurato usando Resource Governor, il motore di database di SQL Server usa il valore MAX_DOP di Resource Governor. L'hint per la query MAXDOP esegue sempre l'override della configurazione server per il massimo grado di parallelismo .

Per eseguire questa operazione a livello di database, usare la MAXDOP configurazione con ambito database.

Per eseguire questa operazione a livello di server, usare l'opzione di configurazione server relativa al massimo grado di parallelismo (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 numero intero positivo. L'impostazione predefinita per value è 0 e consente un numero illimitato di richieste. Quando viene raggiunto il numero massimo di richieste simultanee, un utente in quel gruppo può effettuare l'accesso, ma viene posizionato in uno stato di attesa fino a quando le richieste simultanee non sono inferiori al valore specificato.

USING { pool_name | "default" }

Associa il gruppo del carico di lavoro al pool di risorse definito dall'utente identificato da pool_name. In questo modo, il gruppo del carico di lavoro viene inserito nel pool di risorse. Se non viene specificato pool_name o se l'argomento USING non viene usato, il gruppo di carico di lavoro viene inserito nel pool predefinito di Resource Governor.

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

Nota

Per i gruppi di carico di lavoro e i pool di risorse predefiniti vengono utilizzati sempre nomi scritti in lettere minuscole, ad esempio "default". Questo aspetto deve essere preso in considerazione per i server in cui vengono utilizzate regole di confronto con distinzione tra maiuscole e minuscole. I server con regole di confronto senza distinzione tra maiuscole e minuscole, ad esempio SQL_Latin1_General_CP1_CI_AS, tratteranno "default" e "Default" come lo stesso.

EXTERNAL external_pool_name | "default"

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 del lavoro e associarlo a due pool:

Osservazioni:

Quando si usa REQUEST_MEMORY_GRANT_PERCENT, per la creazione dell'indice è possibile usare più memoria dell'area di lavoro di quella concessa inizialmente, al fine di migliorare le prestazioni. Tale gestione speciale è supportata da Resource Governor in SQL Server. La concessione iniziale, così come qualsiasi concessione supplementare, è tuttavia limitata dalle impostazioni del pool di risorse e del gruppo di carico di lavoro.

Il limite MAX_DOP viene impostato per attività. Non è un limite per richiesta o per query. Ciò significa che durante l'esecuzione di query parallele, una singola richiesta può generare più task che vengono assegnate a un pianificatore. Per altre informazioni, vedere Guida sull'architettura dei thread e delle attività.

Quando MAX_DOP viene usata e una query viene contrassegnata come seriale in fase di compilazione, non può essere modificata in parallelo in fase di esecuzione indipendentemente dal gruppo di carico di lavoro o dall'impostazione di configurazione del server. Dopo che è stato configurato, il valore MAX_DOP può essere diminuito solo in caso di utilizzo elevato della memoria. La riconfigurazione del gruppo di carico di lavoro non è visibile durante l'attesa nella coda della memoria concessa.

Creazione dell'indice in una tabella partizionata

La quantità di memoria utilizzata per la creazione dell'indice in una tabella partizionata non allineata è proporzionale al numero di partizioni coinvolte. Se la memoria totale necessaria supera il limite per query REQUEST_MAX_MEMORY_GRANT_PERCENT imposto dal gruppo di carico di lavoro di Resource Governor, la creazione dell'indice potrebbe non riuscire. Poiché il "default" gruppo di carico di lavoro consente a una query di superare il limite per query con la memoria minima richiesta, l'utente potrebbe essere in grado di eseguire la stessa creazione dell'indice nel "default" gruppo di carico di lavoro, se il "default" pool di risorse dispone di memoria totale sufficiente configurato per eseguire tale query.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempio

Creare un gruppo di carico di lavoro denominato newReports che usa le impostazioni predefinite di Resource Governor e si trova nel pool predefinito di Resource Governor. L'esempio specifica il default pool, ma questo non è obbligatorio.

CREATE WORKLOAD GROUP newReports
WITH
    (REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
      , REQUEST_MAX_CPU_TIME_SEC = 100
      , MAX_DOP = 4)
USING "default" ;
GO

Vedi anche

* 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

Vedi anche