Requêtes trop volumineuses pour la mémoire

Cette rubrique explique comment un propriétaire d’entrepôt ou un administrateur peut résoudre les problèmes de débordement de mémoire afin d’améliorer les performances d’une requête.

Les performances se dégradent considérablement lorsqu’un entrepôt manque de mémoire pendant l’exécution d’une requête, car les octets de mémoire doivent être « déversés » sur le disque local. Si la requête nécessite encore plus de mémoire, elle se déverse sur le stockage distant du fournisseur Cloud, ce qui se traduit par des performances encore plus mauvaises.

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 requêtes qui se déversent sur le stockage

Cette requête identifie les 10 pires requêtes offensantes en termes d’octets déversés sur le stockage local et le stockage distant.

SELECT query_id, SUBSTR(query_text, 1, 50) partial_query_text, user_name, warehouse_name,
  bytes_spilled_to_local_storage, bytes_spilled_to_remote_storage
FROM  snowflake.account_usage.query_history
WHERE (bytes_spilled_to_local_storage > 0
  OR  bytes_spilled_to_remote_storage > 0 )
  AND start_time::date > dateadd('days', -45, current_date)
ORDER BY bytes_spilled_to_remote_storage, bytes_spilled_to_local_storage DESC
LIMIT 10;
Copy

Recommandations

Le déversement de données vers le stockage peut avoir un impact négatif sur les performances des requêtes (en particulier si la requête doit être déversée sur un stockage distant). Pour remédier à ce problème, Snowflake recommande les actions suivantes :

  • Utiliser un entrepôt plus grand (ce qui a pour effet d’augmenter la mémoire/l’espace de stockage local disponible pour l’opération)

  • Traitez les données par lots de plus petite taille.

Vous pouvez utiliser le Profil de requête pour identifier les nœuds d’opération qui provoquent le déversement de données sur le stockage. Pour des considérations sur la sélection de la taille d’entrepôt appropriée, voir Considérations relatives aux entrepôts.