Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le funzionalità di gestione del carico di lavoro di SQL Server PDW consentono a utenti e amministratori di assegnare richieste a configurazioni predefinite di memoria e concorrenza. Utilizzare la gestione dei carichi di lavoro per migliorare le prestazioni, sia in un contesto coerente che misto, consentendo alle richieste di avere le risorse appropriate senza lasciarle in attesa indefinitamente.
Ad esempio, con le tecniche di gestione del carico di lavoro in SQL Server PDW, è possibile:
Assegnare un numero elevato di risorse a un'attività di caricamento.
Specificare altre risorse per la compilazione di un indice columnstore.
Risolvere i problemi relativi a un hash join a prestazioni lente per verificare se è necessaria una quantità maggiore di memoria e quindi assegnare maggiore memoria.
Nozioni di base sulla gestione dei carichi di lavoro
Termini chiave
Gestione del carico di lavoro
gestione del carico di lavoro è la possibilità di comprendere e regolare l'utilizzo delle risorse di sistema per ottenere prestazioni ottimali per le richieste simultanee.
Classe di risorse
In SQL Server PDW, una classe di risorse è un ruolo del server predefinito con limiti assegnati in anticipo per la memoria e la concorrenzialità. SQL Server PDW alloca le risorse alle richieste in base all'appartenenza al ruolo del server della classe di risorse dell'account di accesso che invia le richieste.
Nei nodi di calcolo l'implementazione delle classi di risorse usa la funzionalità Resource Governor in SQL Server. Per altre informazioni su Resource Governor, vedere Resource Governor su MSDN.
Comprendere l'utilizzo attuale delle risorse
Per comprendere l'utilizzo delle risorse di sistema per le richieste attualmente in esecuzione, usare le viste a gestione dinamica di SQL Server PDW. Ad esempio, è possibile usare le DMVs per comprendere se un hash join di grandi dimensioni a esecuzione lenta può trarre vantaggio da una maggiore quantità di memoria.
Modificare le allocazioni delle risorse
Per modificare l'utilizzo delle risorse, modificare l'appartenenza alla classe di risorse dell'account di accesso che invia la richiesta. I ruoli del server della classe di risorse sono denominati mediumrc, largerce xlargerc. Rappresentano rispettivamente allocazioni di risorse medie, di grandi dimensioni e di dimensioni aggiuntive.
Ad esempio, per allocare una grande quantità di risorse di sistema a una richiesta, aggiungere l'account di accesso che invia la richiesta al ruolo del server più grande. L'istruzione ALTER SERVER ROLE seguente aggiunge il login Anna al ruolo server più grande.
ALTER SERVER ROLE largerc ADD MEMBER Anna;
Descrizioni delle classi di risorse
Nella tabella seguente vengono descritte le classi di risorse e le relative allocazioni di risorse di sistema.
Classe di risorse | Importanza della richiesta | Utilizzo massimo memoria* | Slot di concorrenza (massimo = 32) | Descrizione |
---|---|---|---|---|
predefinito | Medio | 400 megabyte | 1 | Per impostazione predefinita, ciascun login ha a disposizione una piccola quantità di memoria e risorse di concorrenza per le sue richieste. Quando un account di accesso viene aggiunto a una classe di risorse, la nuova classe ha la precedenza. Quando un account di accesso viene eliminato da tutte le classi di risorse, l'account di accesso torna all'allocazione di risorse predefinita. |
MediumRC | Medio | 1200 Megabyte | 3 | Esempi di richieste che potrebbero richiedere la classe di risorse di medie dimensioni: Operazioni CTAS con hash join di grandi dimensioni. Operazioni SELECT che richiedono più memoria per evitare la memorizzazione nella cache su disco. Caricamento di dati in indici columnstore raggruppati. Creazione, ricostruzione e riorganizzazione degli indici clustered columnstore per tabelle più piccole con 10-15 colonne. |
Più grande | Alto | 2,8 GB | 7 | Esempi di richieste che potrebbero richiedere la classe di risorse di grandi dimensioni: Operazioni CTAS di grandi dimensioni che dispongono di hash join di grandi dimensioni o che contengono aggregazioni di grandi dimensioni, ad esempio clausole ORDER BY o GROUP BY di grandi dimensioni. Operazioni SELECT che richiedono quantità molto grandi di memoria per operazioni quali hash join o aggregazioni come le clausole ORDER BY o GROUP BY Caricamento di dati in indici columnstore raggruppati. Creazione, ricostruzione e riorganizzazione degli indici clustered columnstore per tabelle più piccole con 10-15 colonne. |
xlargerc | Alto | 8,4 GB | 22 | La classe di risorse di grandi dimensioni aggiuntiva è destinata alle richieste che potrebbero richiedere un utilizzo aggiuntivo di risorse di grandi dimensioni in fase di esecuzione. |
*L'utilizzo massimo della memoria è un'approssimazione.
Importanza della richiesta
L'importanza della richiesta corrisponde alla quantità di tempo di CPU che SQL Server, in esecuzione nei nodi di calcolo, attribuirà alle richieste. Le richieste con priorità più alta ricevono più tempo di CPU.
Utilizzo massimo memoria
L'utilizzo massimo della memoria è la quantità massima di memoria disponibile che una richiesta può usare all'interno di ogni spazio di elaborazione. Ad esempio, una richiesta mediumrc può usare fino a 1200 MB per l'elaborazione all'interno di ogni distribuzione. È comunque importante assicurarsi che i dati non siano asimmetrici per evitare di avere alcune distribuzioni che eseguono la maggior parte del lavoro.
Slot di concorrenza
L'obiettivo dell'allocazione di 1, 3, 7 e 22 slot di concorrenza consiste nel consentire l'esecuzione simultanea di processi di grandi dimensioni e di piccole dimensioni, senza bloccare un processo di piccole dimensioni quando è in esecuzione un processo di grandi dimensioni. Ad esempio, SQL Server PDW può allocare un massimo di 32 slot di concorrenza per eseguire 1 richiesta di grandi dimensioni aggiuntiva (22 slot), 1 richiesta di grandi dimensioni (7 slot) e 1 richiesta media (3 slot) contemporaneamente.
Esempi di allocazione di fino a 32 slot di concorrenza per le richieste concorrenti:
28 slot = 4 grandi
30 slot = 10 medi
32 slot = 32 valore predefinito
32 slot = 1 extra grande + 1 grande + 1 medio
32 slot = 2 grandi + 4 medi + 6 impostazioni predefinite
Si supponga che 6 richieste di grandi dimensioni vengano inviate a SQL Server PDW e quindi vengano inviate 10 richieste predefinite. SQL Server PDW elabora le richieste in ordine di priorità come indicato di seguito:
Allocare 28 slot di concorrenza per avviare l'elaborazione di 4 richieste di grandi dimensioni man mano che la memoria diventa disponibile e mantenere 2 richieste di grandi dimensioni nella coda.
Allocare 4 slot di concorrenza per avviare l'elaborazione di 4 richieste predefinite e mantenere 6 richieste predefinite nella coda di attesa.
Quando le richieste terminano e diventano disponibili slot di concorrenza, SQL Server PDW allocherà le richieste rimanenti in base alle risorse e alla priorità disponibili. Ad esempio, quando ci sono 7 slot di concorrenza aperti, le richieste di grandi dimensioni in attesa avranno una priorità più alta per quei 7 slot rispetto alle richieste medie in attesa. Se si aprono 6 slot, SQL Server PDW allocherà altre 6 richieste di dimensioni predefinite. Tuttavia, gli slot di memoria e concorrenza devono essere tutti disponibili prima che SQL Server PDW permetta a una richiesta di essere eseguita.
All'interno di ogni classe di risorse, le richieste vengono eseguite nell'ordine primo arrivato, primo servito (FIFO).
Osservazioni generali
Se un account di accesso è membro di più classi di risorse, la classe con la maggior parte delle risorse ha la precedenza.
Quando un account di accesso viene aggiunto o eliminato da una classe di risorse, la modifica diventa effettiva immediatamente per tutte le richieste future; le richieste correnti in esecuzione o in attesa non sono interessate. L'account di accesso non deve disconnettersi e riconnettersi per consentire l'esecuzione della modifica.
Per ogni accesso, le impostazioni della classe di risorse vengono applicate alle singole istruzioni e operazioni, e non alla sessione.
Prima che SQL Server PDW esegua un'istruzione, tenta di acquisire gli slot di concorrenza necessari per la richiesta. Se non è in grado di acquisire slot di concorrenza sufficienti, SQL Server PDW sposta la richiesta in uno stato di attesa,to-beeseguito. Tutte le risorse di sistema già allocate alla richiesta vengono restituite al sistema.
La maggior parte delle istruzioni SQL richiede sempre le allocazioni di risorse predefinite e pertanto non è controllata dalle classi di risorse. Ad esempio, CREATE LOGIN richiede solo una piccola quantità di risorse e vengono allocate le risorse predefinite anche se il login che esegue CREATE LOGIN è membro di una classe di risorse. Ad esempio, se Anna è un membro della classe di risorse largerc e invia un'istruzione CREATE LOGIN, l'istruzione CREATE LOGIN verrà eseguita con il numero predefinito di risorse.
Istruzioni e operazioni SQL regolate dalle classi di risorse:
ALTER INDEX REBUILD
ALTER INDEX REORGANIZE
ALTER TABLE REBUILD
CREATE CLUSTERED INDEX
CREARE UN INDICE COLUMNSTORE CLUSTER
CREA TABELLA COME SELEZIONA
CREA TABELLA REMOTA COME SELECT
Caricamento di dati con dwloader.
INSERT-SELECT
AGGIORNAMENTO
CANCELLARE
RESTORE DATABASE durante il ripristino in un'appliance con più nodi di calcolo.
SELECT, escludendo le query relative solo ai DMV
Limitazioni e restrizioni
Le classi di risorse regolano le allocazioni di memoria e concorrenza. Non regolano le operazioni di input/output.
Metadati
DMV che contengono informazioni sulle classi di risorse e sui membri delle classi di risorse.
DMV che forniscono informazioni sullo stato delle richieste e sulle risorse di cui hanno bisogno:
Viste di sistema correlate esposte dalle DMV di SQL Server nei nodi di calcolo. Vedere Viste di Gestione Dinamica di SQL Server per collegamenti a queste DMV su MSDN.
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodes_resource_governor_workload_groups
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodws_resource_governor_workload_groups
sys.dm_pdw_nodes_exec_sessions
sys.dm_pdw_nodes_exec_requests
sys.dm_pdw_nodes_exec_query_memory_grants
sys.dm_pdw_nodes_exec_query_resource_semaphores
sys.dm_pdw_nodes_os_memory_brokers
sys.dm_pdw_nodes_os_memory_cache_entries
sys.dm_pdw_nodes_exec_cached_plans