У нас є SQL Server 2016 SP1 з максимальною пам’яттю на 24 ГБ.
Цей сервер має велику кількість компіляцій, лише 10% цих компіляцій - від спеціальних запитів. Отже, щойно складені плани повинні зберігатися в кеші плану, але розмір кешу плану не збільшується (приблизно 3,72 ГБ).
Я підозрюю, що існує локальний тиск пам'яті, який призводить до видалення планів із кешу. Межа тиску кеш-плану - 5 Гб. (75% видимої цільової пам'яті від 0-4GB + 10% видимої цільової пам'яті від 4GB-64GB + 5% видимої цільової пам'яті> 64GB). Коли кашпо досягає 75% від межі тиску, плани повинні бути вилучені з кеша. У моєму випадку 75% від 5 ГБ - 3,75 ГБ. Тож правдоподібно це і є причиною високих компіляцій.
Чи є спосіб виміряти (perfmon, розширені події, ...) видалення з планів із кешу? Тож я можу бути впевненим, що тиск локальної пам'яті справді є причиною високих компіляцій?