Tenemos un SQL Server 2016 SP1 con memoria máxima establecida en 24 GB.
Este servidor tiene una gran cantidad de compilaciones, solo el 10% de estas compilaciones provienen de consultas ad-hoc. Por lo tanto, los planes recién compilados deben almacenarse en la memoria caché del plan, pero el tamaño de la memoria caché del plan no aumenta (aproximadamente 3,72 GB).
Sospecho que hay una presión de memoria local que conduce a la eliminación de planes de la memoria caché. El límite de presión del caché del plan es de 5 GB. (75% de memoria objetivo visible de 0-4GB + 10% de memoria objetivo visible de 4GB-64GB + 5% de memoria objetivo visible> 64GB). Cuando un almacén en caché alcanza el 75% del límite de presión, los planes deben eliminarse del caché. En mi caso, el 75% de 5 GB es 3.75GB. Por lo tanto, es posible que esta sea la causa de las altas compilaciones.
¿Hay alguna manera de medir (perfmon, eventos extendidos, ...) la eliminación de los planes del caché? Entonces, ¿puedo estar seguro de que la presión de la memoria local es realmente la causa de las altas compilaciones?
fuente