Wir haben einen SQL Server 2016 SP1 mit einem maximalen Speicher von 24 GB.
Dieser Server verfügt über eine hohe Anzahl von Kompilierungen. Nur 10% dieser Kompilierungen stammen aus Ad-hoc-Abfragen. Daher sollten die neu kompilierten Pläne im Plan-Cache gespeichert werden, aber die Größe des Plan-Cache nimmt nicht zu (ca. 3,72 GB).
Ich vermute, dass es lokalen Speicherdruck gibt, der zum Entfernen von Plänen aus dem Cache führt. Die Plan-Cache-Druckgrenze beträgt 5 GB. (75% des sichtbaren Zielspeichers von 0 bis 4 GB + 10% des sichtbaren Zielspeichers von 4 bis 64 GB + 5% des sichtbaren Zielspeichers> 64 GB). Wenn ein Cachestore 75% der Druckgrenze erreicht, sollten Pläne aus dem Cache entfernt werden. In meinem Fall sind 75% von 5 GB 3,75 GB. Es ist also plausibel, dass dies die Ursache für die hohen Kompilierungen ist.
Gibt es eine Möglichkeit, das Entfernen von Plänen aus dem Cache zu messen (Perfmon, erweiterte Ereignisse, ...)? Ich kann also sicher sein, dass der lokale Speicherdruck wirklich die Ursache für die hohen Kompilierungen ist?
quelle