Abbiamo un SQL Server 2016 SP1 con memoria massima impostata su 24 GB.
Questo server ha un numero elevato di compilazioni, solo il 10% di queste compilazioni proviene da query ad hoc. Pertanto, i piani appena compilati devono essere archiviati nella cache del piano ma le dimensioni della cache del piano non aumentano (circa 3,72 GB).
Ho il sospetto che vi sia una pressione della memoria locale che porta alla rimozione dei piani dalla cache. Il limite di pressione della cache del piano è 5 GB. (75% di memoria di destinazione visibile da 0-4 GB + 10% di memoria di destinazione visibile da 4 GB a 64 GB + 5% di memoria di destinazione visibile> 64 GB). Quando una cache raggiunge il 75% del limite di pressione, i piani devono essere rimossi dalla cache. Nel mio caso il 75% di 5 GB è 3,75 GB. Quindi è plausibile che questa sia la causa delle alte compilazioni.
C'è un modo per misurare (perfmon, eventi estesi, ...) la rimozione dai piani dalla cache? Quindi posso essere certo che la pressione della memoria locale è davvero la causa delle compilazioni elevate?