Limitation de l’exécution simultanée des requêtes

Cette rubrique explique comment un propriétaire d’entrepôt ou un administrateur peut réduire le nombre de requêtes exécutées simultanément sur un entrepôt afin d’améliorer les performances de ces requêtes.

Les requêtes exécutées simultanément dans un entrepôt doivent partager les ressources de l’entrepôt, ce qui signifie que chaque requête peut se voir attribuer moins de ressources. Vous pouvez utiliser le paramètre MAX_CONCURRENCY_LEVEL pour limiter le nombre de requêtes simultanées s’exécutant dans un entrepôt. Comme moins de requêtes sont en concurrence pour les ressources de l’entrepôt, une requête peut potentiellement se voir attribuer plus de ressources.

L’abaissement du niveau de concurrence peut améliorer les performances de certaines requêtes, en particulier les requêtes volumineuses, complexes ou comportant plusieurs instructions, mais ces ajustements doivent être testés de manière approfondie pour s’assurer qu’ils ont l’effet escompté.

Il faut savoir qu’en réduisant le MAX_CONCURRENCY_LEVEL d’un entrepôt, davantage de requêtes peuvent être placées dans une file d’attente, ce qui a une incidence sur les performances de ces requêtes. D’autres stratégies, telles que l’utilisation d’un entrepôt dédié ou du service d’accélération de requête, peuvent améliorer les performances d’une requête importante ou complexe sans avoir d’impact sur le reste de la charge de travail.

Note

L’ajustement du paramètre STATEMENT_QUEUED_TIMEOUT_IN_SECONDS permet d’annuler les requêtes plutôt que de les laisser dans la file d’attente pendant une période prolongée.

Comment réduire MAX_CONCURRENCY_LEVEL

Le niveau de simultanéité maximal par défaut est 8. Pour abaisser le niveau, utilisez la commande ALTER WAREHOUSE pour spécifier un nombre inférieur. Par exemple :

ALTER WAREHOUSE my_wh SET MAX_CONCURRENCY_LEVEL = 4;
Copy