Інші відповіді правильні щодо причин не бігти DBCC FREEPROCCACHE
. Однак є також кілька причин:
- Послідовність
Якщо ви хочете порівняти два різні запити чи процедури, які намагаються зробити те саме по-різному, вони, ймовірно, потрапляють на одні і ті ж сторінки. Якщо ви наївно запускаєте запит №1, то запит №2, другий може бути набагато швидшим, просто тому, що ці сторінки були кешовані першим запитом. Якщо очистити кеш-пам'ять перед кожним виконанням, вони починаються рівномірно.
Якщо ви хочете перевірити продуктивність гарячого кешу, не забудьте виконати запити кілька разів, чергуючи та відмовтеся від перших кількох запусків. Середні результати.
- Найгірші показники
Скажімо, у вас є запит, який займає одну секунду проти гарячого кешу, але одну хвилину проти холодного кешу. Оптимізація, яка робить запит в пам'яті на 20% повільніше, але запит, пов'язаний з IO, на 20% швидше, може стати великим виграшем: під час звичайних операцій ніхто не помітить зайвих 200 мс за звичайних обставин, але якщо щось змусить запит запустити диск, зайняття 48 секунд замість 60 може зберегти продаж.
Це менше турбує сучасні системи з десятками гігабайт пам'яті та відносно швидким зберіганням SAN та SSD, але це все одно має значення. Якщо якийсь аналітик виконує запит масового сканування таблиці щодо вашої бази даних OLTP, який видаляє половину кеш-пам’яті, запити з ефективними сховищами швидше відновлять вас.
DBCC FLUSHPROCINDB
: для оператора DBCC було задано неправильну кількість параметрів.