Symptômes
Prenons le scénario suivant :
- Vous utilisez une configuration d’estimation de cardinalité (CE) qui correspond au niveau de compatibilité de base de données 120 ou à un niveau ultérieur pour votre système Microsoft SQL Server 2016 et 2017.
- Vous exécutez une requête qui contient un prédicat de recherche.
- La requête recherche des valeurs inférieures ou égales à un nombre inférieur à la valeur minimale de RANGE_HI_KEY stockée dans l’objet statistiques. Ou bien, la requête recherche des valeurs supérieures à la valeur maximale de RANGE_HI_KEY pour les mêmes statistiques.
Dans ce scénario, l’optimiseur de requête surestime le nombre de lignes. Cela peut entraîner un choix de plan de requête non optimal et des performances médiocres.
Résolution
Le correctif de ce problème est inclus dans les mises à jour cumulatives suivantes pour SQL Server :
Mise à jour cumulative CU 38 pour SQL Server 2017
Mise à jour cumulative CU 38 pour SQL Server 2016 SP1
Mise à jour cumulative 2 pour SQL Server 2016
Remarque Après avoir installé cette mise à jour, vous devez activer l’indicateur de trace 4199 afin d’activer ce correctif. Pour activer l’indicateur de trace 4199, reportez-vous à la rubrique Indicateurs de trace (Transact-SQL) sur le site web MSDN (Microsoft Developer Network).
À propos des mises à jour cumulatives 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. Consultez les dernières mises à jour cumulatives pour SQL Server :
Dernière mise à jour cumulative pour SQL Server 2017
Dernière mise à jour cumulative pour SQL Server 2016
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Références
Découvrez la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.