Par Arian Papillon le lundi 2 janvier 2017, 10:59
Et si l'optimiseur savait apprendre de
ses erreurs ?
Avec la version CTP 1.1 de vNext (future version de SQL Server en bêta), on
voit arriver les premières améliorations de l'optimiseur "adaptatif" que nous
vivrons avec les futures versions.
Un des problèmes actuels de l'optimiseur est qu'il est incapable de tenir
compte de ses erreurs : lorsqu'un plan d'exécution a été construit avec une
mauvaise estimation de la quantité de mémoire nécessaire, le même problème va
se produire lors de chaque exécution. D'où des problèmes de performance
des requêtes et de montée en charge...
Ce n'est que le début, mais une nouvelle fonctionnalité apparaît déjà dans
cette nouvelle version bêta : le "Batch Mode Adaptative Memory Grant
Feedback".
Comment ça fonctionne ? Pour peu que vous utilisiez un index column store et
que votre requête s'exécute en batch mode, SQL Server saura réadapter la
consommation de mémoire nécessaire dès la 2ème exécution d'une requête, en se
basant sur les données de la première exécution.
Voyons cela :