Réduction des files d’attente

Cette rubrique explique comment un propriétaire d’entrepôt ou un administrateur peut réduire les files d’attente afin d’améliorer les performances des requêtes exécutées sur un entrepôt.

Si un trop grand nombre de requêtes sont envoyées simultanément à un entrepôt, les ressources de calcul de l’entrepôt s’épuisent et les requêtes suivantes sont mises en file d’attente jusqu’à ce que des ressources soient disponibles. Le délai entre la soumission d’une requête et l’obtention des résultats est plus long lorsque la requête doit attendre dans une file d’attente avant d’être lancée.

Note

Vous devez avoir accès à la base de données SNOWFLAKE partagée pour exécuter les requêtes de diagnostic fournies dans cette rubrique. Par défaut, seul le rôle ACCOUNTADMIN dispose des privilèges nécessaires à l’exécution des requêtes.

Recherche de files d’attente

Snowsight

Pour déterminer si un entrepôt particulier connaît des files d’attente :

  1. Connectez-vous à Snowsight.

  2. Accédez à Admin » Warehouses.

  3. Sélectionnez l’entrepôt.

  4. Dans le graphique Warehouse Activity utilisez la couleur associée à Queued load pour identifier les files d’attente.

  5. Recherchez des modèles dans la hauteur des barres pour déterminer si les files d’attente sont associées à des pics d’utilisation.

SQL

Requête : entrepôts avec file d’attente

Cette requête répertorie les entrepôts qui ont eu une file d’attente au cours du dernier mois, triés par date.

SELECT TO_DATE(start_time) AS date
  ,warehouse_name
  ,SUM(avg_running) AS sum_running
  ,SUM(avg_queued_load) AS sum_queued
FROM snowflake.account_usage.warehouse_load_history
WHERE TO_DATE(start_time) >= DATEADD(month,-1,CURRENT_TIMESTAMP())
GROUP BY 1,2
HAVING SUM(avg_queued_load) > 0;
Copy

Vous pouvez également écrire des requêtes sur la vue QUERY_HISTORY pour calculer le temps que les requêtes passent dans la file d’attente.

Options pour réduire les files d’attente

Vous disposez de plusieurs options pour arrêter la mise en file d’attente de l’entrepôt :

  • Pour un entrepôt ordinaire (c’est-à-dire pas un entrepôt multi-clusters), il faut envisager de créer des entrepôts supplémentaires, puis de répartir les requêtes entre eux. Si des requêtes spécifiques provoquent des pics d’utilisation, concentrez-vous sur le déplacement de ces requêtes.

  • Envisagez de convertir un entrepôt en un entrepôt multi-clusters afin que l’entrepôt puisse fournir de manière flexible des ressources de calcul supplémentaires en cas de pic de la demande. Les entrepôts multi-clusters nécessitent l’édition Enterprise Edition de Snowflake.

  • Si vous utilisez déjà un entrepôt multi-clusters, augmentez le nombre maximum de clusters.

Considérations relatives aux clients

Pour une description de l’impact de l’exécution d’un entrepôt multi-clusters sur la consommation de crédits, reportez-vous à Taille multi-clusters et utilisation du crédit.

Si vous exécutez un entrepôt multi-clusters en mode Mise à l’échelle automatique, vous pouvez utiliser une politique de mise à l’échelle pour aider à contrôler les coûts. La politique de mise à l’échelle Economy favorise la conservation des crédits plutôt que la flexibilité des clusters en maintenant les clusters en cours d’exécution à pleine charge plutôt qu’en démarrant des clusters supplémentaires. Cela peut entraîner une mise en file d’attente des requêtes et un allongement de la durée de traitement.

Comment configurer les entrepôts pour réduire les files d’attente ?

Entrepôts ordinaires

Pour créer de nouveaux entrepôts vers lesquels les requêtes peuvent être distribuées, connectez-vous à Snowsight et sélectionnez Admin » Warehouses. Vous pouvez également utiliser la commande CREATE WAREHOUSE.

Entrepôts multi-clusters

Pour convertir un entrepôt existant en un entrepôt multi-clusters ou pour augmenter le nombre maximum de clusters pour un entrepôt existant :

  1. Connectez-vous à Snowsight.

  2. Accédez à Admin » Warehouses.

  3. Recherchez l’entrepôt et sélectionnez » Edit.

  4. Si vous passez à un entrepôt multi-clusters, activez l’option Multi-cluster Warehouse. Si vous ne voyez pas cette option, passez à Enterprise Edition ou à une version supérieure.

  5. Utilisez le menu déroulant Max Clusters pour ajuster le nombre maximum de clusters.