Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les fonctionnalités de gestion des charges de travail de SQL Server PDW permettent aux utilisateurs et aux administrateurs d’attribuer des demandes à des configurations de mémoire prédéfinies et à la concurrence. Utilisez la gestion des charges de travail pour améliorer les performances de vos charges de travail, qu'elles soient cohérentes ou mixtes, en permettant aux requêtes d'obtenir les ressources appropriées sans priver indéfiniment aucune demande.
Par exemple, avec les techniques de gestion des charges de travail dans SQL Server PDW, vous pouvez :
Allouez un grand nombre de ressources à un travail de chargement.
Spécifiez d’autres ressources pour créer un index columnstore.
Résolvez les problèmes liés à une jointure de hachage lente pour voir s’il a besoin de plus de mémoire, puis donnez-lui plus de mémoire.
Principes de base de la gestion des charges de travail
Termes clés
Gestion des charges de travail
gestion des charges de travail est la possibilité de comprendre et d’ajuster l’utilisation des ressources système afin d’obtenir les meilleures performances pour les requêtes simultanées.
Classe de ressources
Dans SQL Server PDW, une classe de ressources est un rôle serveur intégré qui a des limites prédéfinies pour la mémoire et la concurrence. SQL Server PDW alloue des ressources aux requêtes en fonction de l’appartenance au rôle serveur de classe de ressources de la connexion qui envoie les demandes.
Sur les nœuds de calcul, l’implémentation de classes de ressources utilise la fonctionnalité Resource Governor dans SQL Server. Pour plus d’informations sur Resource Governor, consultez Resource Governor sur MSDN.
Comprendre l’utilisation actuelle des ressources
Pour comprendre l’utilisation des ressources système pour les requêtes en cours d’exécution, utilisez les vues de gestion dynamique PDW SQL Server. Par exemple, vous pouvez utiliser des DMV pour comprendre si une jointure de hachage volumineuse à exécution lente pourrait bénéficier d’une mémoire plus importante.
Ajuster les allocations de ressources
Pour ajuster l’utilisation des ressources, modifiez l’appartenance à la classe de ressources de la connexion qui envoie la demande. Les rôles de serveur de classe de ressources sont nommés mediumrc, largercet xlargerc. Ils représentent respectivement des allocations de ressources moyennes, volumineuses et extra-volumineuses.
Par exemple, pour allouer une grande quantité de ressources système à une demande, ajoutez le compte qui soumet la demande au rôle serveur largerc. L’instruction suivante ALTER SERVER ROLE ajoute l’identifiant de connexion Anna au rôle serveur largerc.
ALTER SERVER ROLE largerc ADD MEMBER Anna;
Descriptions de classes de ressources
Le tableau suivant décrit les classes de ressources et leurs allocations de ressources système.
| Classe de ressources | Importance de la demande | Utilisation maximale de la mémoire* | Emplacements d’accès concurrentiel (maximum = 32) | Description |
|---|---|---|---|---|
| default | Moyenne | 400 Mo | 1 | Par défaut, chaque connexion dispose d'une petite quantité de mémoire et de ressources de concurrence pour ses requêtes. Lorsqu’une connexion est ajoutée à une classe de ressource, la nouvelle classe est prioritaire. Lorsqu’une connexion est supprimée de toutes les classes de ressources, la connexion revient à l’allocation de ressources par défaut. |
| MediumRC | Moyenne | 1200 Mo | 3 | Exemples de requêtes qui peuvent avoir besoin de la classe de ressources moyenne : Opérations CTAS qui ont des jointures de hachage volumineuses. Opérations SELECT nécessitant plus de mémoire pour éviter la mise en cache sur le disque. Chargement de données dans des index columnstore en grappes. Génération, reconstruction et réorganisation des index columnstore clusterisés pour les petites tables qui ont 10 à 15 colonnes. |
| Largerc | Élevé | 2,8 Go | 7 | Exemples de requêtes qui peuvent nécessiter la classe de ressources volumineuse : Des opérations CTAS très volumineuses qui ont des jointures de hachage énormes ou contiennent des agrégations volumineuses, telles que des clauses ORDER BY ou GROUP BY volumineuses. Opérations SELECT qui nécessitent de très grandes quantités de mémoire pour les opérations telles que les jointures de hachage ou les agrégations telles que les clauses ORDER BY ou GROUP BY Chargement de données dans des index columnstore en grappes. Génération, reconstruction et réorganisation des index columnstore clusterisés pour les petites tables qui ont 10 à 15 colonnes. |
| xlargerc | Élevé | 8,4 Go | 22 | La classe de ressources supplémentaire est destinée aux requêtes qui peuvent nécessiter une consommation de ressources supplémentaire au moment de l’exécution. |
*Utilisation maximale de la mémoire est une approximation.
Importance de la demande
L’importance de la requête correspond au temps processeur que SQL Server, en cours d’exécution sur les nœuds de calcul, allouera aux requêtes. Les requêtes avec une priorité plus élevée reçoivent plus de temps processeur.
Utilisation maximale de la mémoire
L’utilisation maximale de la mémoire est la quantité maximale de mémoire disponible qu’une demande peut utiliser dans chaque espace de traitement. Par exemple, une requête mediumrc peut utiliser jusqu’à 1200 Mo pour le traitement dans chaque distribution. Il est toujours important de s’assurer que les données ne sont pas asymétriques afin d’éviter d’avoir quelques distributions effectuant la plupart du travail.
Emplacements d’accès concurrentiel
L’objectif de l’allocation d’emplacements d’accès concurrentiel 1, 3, 7 et 22 consiste à permettre aux grands et petits processus de s’exécuter en même temps, sans bloquer le petit processus lorsqu’un processus volumineux est en cours d’exécution. Par exemple, SQL Server PDW peut allouer au maximum 32 emplacements d’accès concurrentiel pour exécuter 1 requête supplémentaire volumineuse (22 emplacements), 1 demande volumineuse (7 emplacements) et 1 requête moyenne (3 emplacements) en même temps.
Exemples d’allocation jusqu’à 32 emplacements d’accès concurrentiel aux requêtes simultanées :
28 emplacements = 4 grandes
30 emplacements = 10 unités moyennes
32 emplacements = 32 par défaut
32 emplacements = 1 très grand + 1 grand + 1 moyen
32 emplacements = 2 grandes + 4 moyennes + 6 par défaut
Supposons que 6 demandes volumineuses sont envoyées à SQL Server PDW, puis que 10 demandes par défaut sont envoyées. SQL Server PDW traite les demandes dans l’ordre de priorité comme suit :
Allouez 28 emplacements d’accès concurrentiel pour commencer à traiter 4 requêtes volumineuses à mesure que la mémoire devient disponible et conservez 2 requêtes volumineuses dans la file d’attente.
Allouez 4 emplacements d’accès concurrentiel pour commencer à traiter 4 requêtes par défaut et conservez 6 requêtes par défaut dans la file d’attente.
À mesure que les requêtes se terminent et que les emplacements d’accès concurrentiel deviennent disponibles, SQL Server PDW alloue les requêtes restantes en fonction des ressources disponibles et de la priorité. Par exemple, lorsqu’il existe 7 emplacements d’accès concurrentiel ouverts, l’attente de requêtes volumineuses aura une priorité plus élevée pour les 7 emplacements que les requêtes moyennes en attente. Si 6 emplacements s’ouvrent, SQL Server PDW alloue 6 demandes de taille par défaut supplémentaires. Toutefois, les emplacements de mémoire et d’accès concurrentiel doivent tous être disponibles avant que SQL Server PDW autorise l’exécution d’une requête.
Dans chaque classe de ressource, les requêtes s’exécutent dans l’ordre de premier entré, premier sorti (FIFO).
Remarques d'ordre général
Si une connexion est membre de plusieurs classes de ressources, la classe avec la plupart des ressources est prioritaire.
Lorsqu’une connexion est ajoutée ou supprimée d’une classe de ressource, la modification prend effet immédiatement pour toutes les demandes futures ; les requêtes actuelles en cours d’exécution ou en attente ne sont pas affectées. Vous n'avez pas besoin de vous déconnecter ni de vous reconnecter pour que le changement prenne effet.
Pour chaque connexion, les paramètres de classe de ressource sont appliqués aux instructions et opérations individuelles, et non à la session.
Avant que SQL Server PDW exécute une instruction, il tente d’acquérir les emplacements d’accès concurrentiel nécessaires pour la requête. S'il ne peut pas acquérir suffisamment d'emplacements de concurrence, SQL Server PDW place la requête dans un état d'attente d'exécution. Toutes les ressources système qui avaient déjà été allouées à la requête sont renvoyées au système.
La plupart des instructions SQL ont toujours besoin des allocations de ressources par défaut et ne sont donc pas contrôlées par les classes de ressources. Par exemple, CREATE LOGIN ne nécessite qu’une faible quantité de ressources et se voit attribuer les ressources par défaut, même si la connexion qui appelle CREATE LOGIN est membre d’une classe de ressources. Par exemple, si Anna est membre de la classe de ressources plus grande et envoie une CREATE LOGIN instruction, l’instruction CREATE LOGIN s’exécute avec le nombre par défaut de ressources.
Instructions et opérations SQL régies par les classes de ressources :
ALTER INDEX RECONSTRUIRE
ALTER INDEX RÉORGANISER
ALTER TABLE RECONSTRUIRE
CRÉER EN CLUSTER INDEX
CRÉER EN CLUSTER COLUMNSTORE INDEX
CREATE TABLE AS SELECT
CREATE REMOTE TABLE AS SELECT
Chargement de données avec dwloader.
INSERT-SÉLECTIONNEZ
UPDATE
DELETE
RESTORE DATABASE lors de la restauration dans une appliance avec plus de nœuds de calcul.
SELECT, à l’exclusion des requêtes DMV uniquement
Limitations et restrictions
Les classes de ressources régissent les allocations de mémoire et d’accès concurrentiel. Ils ne régissent pas les opérations d’entrée/sortie.
Métadonnées
DMVs qui contiennent des informations sur les classes de ressources et les membres de classes de ressources.
DMV qui contiennent des informations sur l’état des requêtes et les ressources dont elles ont besoin :
Vues système associées révélées à partir des DMV de SQL Server sur les nœuds de calcul. Consultez vues de gestion dynamique SQL Server pour obtenir des liens vers ces vues de gestion dynamique sur 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