ALTER WORKLOAD GROUP (Transact-SQL)

Viene modificata una configurazione esistente del gruppo del carico di lavoro di Resource Governor che, facoltativamente, viene assegnata a un pool di risorse di Resource Governor.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL.

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 | "default"
    Nome di un gruppo del carico di lavoro esistente definito dall'utente o del gruppo del carico di lavoro di Resource Governor creato durante l'installazione di SQL Server 2008.

    Se utilizzata con ALTER WORKLOAD GROUP, l'opzione "default" deve essere delimitata da virgolette ("") o parentesi quadrate ([]) per evitare conflitti con DEFAULT, una parola riservata di sistema. Per ulteriori informazioni, vedere Identificatori delimitati (Motore di database).

    [!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. Nei server con regole di confronto senza distinzione tra maiuscole e minuscole, ad esempio SQL_Latin1_General_CP1_CI_AS, le parole "default" e "Default" vengono considerate uguali.

  • IMPORTANCE = { LOW | MEDIUM | HIGH }
    Specifica l'importanza relativa di una richiesta nel gruppo del carico di lavoro. I possibili valori di importanza sono i seguenti:

    • LOW

    • MEDIUM (valore predefinito)

    • HIGH

    [!NOTA]

    Internamente, ogni impostazione di importanza viene archiviata come un numero utilizzato per i calcoli.

    IMPORTANCE è locale al pool di risorse. I gruppi di carico di lavoro con diversa importanza e interni allo stesso pool di risorse influiscono l'uno sull'altro, ma non 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. La percentuale è relativa alla dimensioni del pool di risorse specificata da MAX_MEMORY_PERCENT.

    [!NOTA]

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

    value deve essere 0 o un numero intero positivo. L'intervallo consentito per value è compreso tra 0 e 100. L'impostazione predefinita di value è 25.

    Tenere presente quanto segue:

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

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

    [!NOTA]

    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.

    Per ulteriori informazioni sui messaggi di errore di Resource Governor, vedere Risoluzione dei problemi relativi a Resource Governor.

  • REQUEST_MAX_CPU_TIME_SEC =value
    Viene specificato il tempo massimo di attesa di una query, in secondi, per la disponibilità di una risorsa, prima che la query generi un errore. value deve essere zero o un numero intero positivo. L'impostazione predefinita per value, 0, prevede l'utilizzo di un calcolo interno basato sul costo della query per determinare il tempo massimo.

    [!NOTA]

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

  • REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
    Viene specificato il tempo massimo, in secondi, di attesa di una query prima che una concessione di memoria (memoria buffer di lavoro) diventi disponibile.

    [!NOTA]

    È possibile eseguire la query 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.

    value deve essere un numero intero positivo. L'impostazione predefinita per value, 0, prevede l'utilizzo di un calcolo interno basato sul costo della query per determinare il tempo massimo.

  • MAX_DOP =value
    Specifica il massimo grado di parallelismo (DOP, Degree Of Parallelism) per le richieste parallele. value deve essere 0 o un numero intero positivo. L'intervallo consentito per value è compreso tra 0 e 64. L'impostazione predefinita per value (0) consente al server di scegliere il massimo grado di parallelismo. Si tratta dell'impostazione predefinita e consigliata. Il valore massimo utilizzato dal server è 64 quando value è uguale a 0. MAX_DOP viene gestito nel modo seguente:

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

    • MAXDOP, come hint per la query, consente di eseguire sempre l'override di sp_configure 'max degree of parallelism'.

    • MAX_DOP del gruppo del carico di lavoro consente di eseguire l'override di sp_configure 'max degree of parallelism'.

    • Se la query viene contrassegnata come seriale (MAX_DOP = 1) in fase di compilazione, durante l'esecuzione non potrà ritornare a parallela, indipendentemente dal gruppo del 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.

  • GROUP_MAX_REQUESTS =value
    Specifica il numero massimo di richieste simultanee che possono essere eseguite nel gruppo di carico di lavoro. value deve essere 0 o un numero intero positivo. L'impostazione predefinita per value è 0, che consente un numero illimitato di richieste.

  • USING { pool_name | "default" }
    Associa il gruppo di carico di lavoro al pool di risorse definito dall'utente identificato da pool_name, in modo da inserire il gruppo di carico di lavoro nel pool di risorse. Se non viene specificato pool_name, o se l'argomento USING non viene utilizzato, il gruppo di carico di lavoro viene inserito nel pool di Resource Governor predefinito.

    Se utilizzata con ALTER WORKLOAD GROUP, l'opzione "default" deve essere delimitata da virgolette ("") o parentesi quadrate ([]) per evitare conflitti con DEFAULT, una parola riservata di sistema. Per ulteriori informazioni, vedere Identificatori delimitati (Motore di database).

    [!NOTA]

    Per l'opzione "default" si applica la distinzione tra maiuscole e minuscole.

Osservazioni

ALTER WORKLOAD GROUP è consentito nel gruppo predefinito.

Le modifiche alla configurazione del gruppo di carico di lavoro non hanno effetto fino all'esecuzione di ALTER RESOURCE GOVERNOR RECONFIGURE.

Per l'esecuzione di istruzioni DDL, è consigliabile avere familiarità con gli stati di Resource Governor. Per ulteriori informazioni, vedere Stati di Resource Governor.

REQUEST_MEMORY_GRANT_PERCENT: in SQL Server 2005 al fine di ottenere prestazioni ottimali è possibile utilizzare per la creazione dell'indice una quantità di memoria per l'area di lavoro maggiore di quella concessa inizialmente. Tale gestione particolare è supportata da Resource Governor in SQL Server 2008. La concessione iniziale, così come qualsiasi concessione supplementare, è tuttavia limitata dalle impostazioni del pool di risorse e del gruppo di carico di lavoro.

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 gruppo del carico di lavoro "default" consente a una query di superare il limite per query con la memoria minima necessaria per la compatibilità con SQL Server 2005, l'utente potrebbe essere in grado di eseguire la stessa creazione dell'indice in un gruppo del carico di lavoro "default", se nel pool di risorse "default" è configurata una quantità di memoria totale sufficiente per eseguire la query.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempi

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

ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

Nell'esempio seguente viene indicato come spostare un gruppo del carico di lavoro dal pool in cui si trova al pool predefinito.

ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

Cronologia modifiche

Contenuto aggiornato

Aggiunta delle informazioni "Tenere presente quanto segue" alla descrizione dell'argomento REQUEST_MAX_MEMORY_GRANT_PERCENT.