Mamy SQL Server 2016 SP1 z maksymalną pamięcią ustawioną na 24 GB.
Ten serwer ma dużą liczbę kompilacji, tylko 10% tych kompilacji pochodzi z zapytań Ad-Hoc. Nowo skompilowane plany powinny być przechowywane w pamięci podręcznej planu, ale wielkość pamięci podręcznej planu nie rośnie (około 3,72 GB).
Podejrzewam, że istnieje lokalna presja pamięci, która prowadzi do usunięcia planów z pamięci podręcznej. Limit ciśnienia pamięci podręcznej planu wynosi 5 GB. (75% widocznej pamięci docelowej od 0-4 GB + 10% widocznej pamięci docelowej od 4 GB-64 GB + 5% widocznej pamięci docelowej> 64 GB). Kiedy pamięć podręczna osiągnie 75% limitu ciśnienia, plany powinny zostać usunięte z pamięci podręcznej. W moim przypadku 75% z 5 GB to 3,75 GB. Jest więc prawdopodobne, że jest to przyczyną wysokich kompilacji.
Czy istnieje sposób na zmierzenie (perfmon, zdarzenia rozszerzone, ...) usunięcia planów z pamięci podręcznej? Więc mogę być pewien, że lokalna presja pamięci jest naprawdę przyczyną wysokich kompilacji?