Nous avons un SQL Server 2016 SP1 avec une mémoire maximale définie sur 24 Go.
Ce serveur a un grand nombre de compilations, seulement 10% de ces compilations proviennent de requêtes ad hoc. Ainsi, les plans nouvellement compilés doivent être stockés dans le cache de plan mais la taille du cache de plan n'augmente pas (environ 3,72 Go).
Je soupçonne qu'il y a une pression de mémoire locale qui conduit à la suppression des plans du cache. La limite de pression du cache du plan est de 5 Go. (75% de la mémoire cible visible de 0 à 4 Go + 10% de la mémoire cible visible de 4 Go à 64 Go + 5% de la mémoire cible visible> 64 Go). Lorsqu'un cache de mémoire atteint 75% de la limite de pression, les plans doivent être supprimés du cache. Dans mon cas, 75% des 5 Go correspondent à 3,75 Go. Il est donc plausible que ce soit la cause des compilations élevées.
Existe-t-il un moyen de mesurer (perfmon, événements étendus, ...) la suppression des plans hors du cache? Je peux donc être certain que la pression de la mémoire locale est vraiment la cause des compilations élevées?