Как можно отслеживать улучшение кеша запросов?

Я настраиваю ad hoc sql моего веб-приложения. В результате я ожидаю, что кэш плана запросов уменьшится в размере и будет иметь более высокий коэффициент попадания. Возможно, даже другие важные показатели будут улучшены.

Могу ли я использовать perfmon для отслеживания этого? Если так, то какие счетчики я должен использовать? Если бы не perfmon, как я мог сообщить о влиянии этого изменения?

2 ответа

Решение

SQL Server, Plan Cache Object

Коэффициент попаданий в кэш Соотношение между попаданиями в кеш и поисками.
Cache Object Counts Количество объектов кеша в кеше.
Страницы кэша Количество страниц размером 8 килобайт (КБ), используемых объектами кэша.
Используемые объекты кэша Число используемых объектов кэша.

Также sys.dm_os_memory_clerks и sys.dm_os_memory_cache_counters предоставят информацию о распределении памяти (в целом) и кэшах SQL (в целом). Вы будете заинтересованы в распределении клерка кэш-памяти плана.

И, наконец, исполняемые DMV: sys.dm_exec_query_stats и sys.dm_exec_cached_plans.

Эти счетчики и DMV должны покрывать то, что вам нужно, более подробно см. Кэширование и повторное использование плана выполнения.

Вы можете использовать SQL Server Profiler. Создайте новую трассировку и перехватите события TSQL->Exec Prepared Sql и TSQL->Prepare Sql. Первый сообщит вам, когда он повторно использует план запроса, а второй - когда он восстанавливает план.

То же самое можно сделать и для хранимых процедур в категории событий SP.

Другие вопросы по тегам