Я получил этот запрос из поста в блоге :
SELECT object_name, counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Buffer Manager%'
AND [counter_name] = 'Buffer cache hit ratio'
В посте сказано, что это даст мне процент попаданий в кеш. Казалось, это указывает на то, что это будет значение 0-100 (результат 87).
Но когда я запускаю его, я получаю очень большие цифры. Вот пример:
object_name counter_name cntr_value
SQLServer:Buffer Manager Buffer cache hit ratio 9990
Это значит 99,90%?
Если нет, что это значит? И как я могу получить реальную стоимость?
ПРИМЕЧАНИЕ: я получил значения от 257 до 352363
Если это актуально, вот несколько других характеристик сервера:
- Ожидаемая продолжительность жизни страницы: 145
- Страница читает / сек: 1 380 009 009
sql-server
performance
sql-server-2012
Vaccano
источник
источник
Ответы:
Смущает, верно?
Ну, чтобы на самом деле получить соотношение, вам нужно сделать это самостоятельно, используя
Buffer cache hit ratio base
в дополнение кBuffer cache hit ratio
получению результата изBuffer cache hit ratio / Buffer cache hit ratio base
.Попробуйте следующий запрос (от Less Than Dot ), который должен дать вам%, который вы ищете:
источник
Если у вас нет экземпляра SQL-сервера по умолчанию, но есть именованный экземпляр, вам нужно изменить запрос следующим образом:
источник