KB3167159 – CORRECTIF : la requête s’exécute lentement lorsque SQL Server utilise un agrégat de hachage dans le plan de requête

S’applique à
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptômes

Votre requête peut s’exécuter lentement si les conditions suivantes sont remplies :

  • La requête utilise des agrégats tels que grouper par.
  • SQL Server utilise l’agrégation de hachage dans le plan de requête.
  • Le nombre estimé de valeurs distinctes est bien inférieur au nombre réel de valeurs distinctes pour l’agrégat.

Lorsque ce problème se produit, un événement d’avertissement de hachage s’affiche si vous effectuez le suivi du profileur ou des événements étendus.

Cause

Ce problème se produit parce que SQL Server sous-estime la quantité de mémoire allouée nécessaire. Ceci entraîne la propagation des résultats intermédiaires vers tempdb.

Résolution

Ce problème a été résolu dans la mise à jour cumulative de SQL Server suivante :

Remarque Vous devez activer l’indicateur de trace 9410 pour activer ce correctif.

Recommandation : Installer la dernière mise à jour cumulative pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :

      

Références

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.