Encontrei O que significa uma "taxa de acertos do cache do buffer" de 9990? ( Eu estava obtendo resultado de 9000+ de um blog que estava errado ) e usei a solução de LowlyDBA/Denis Gobo combinada com o verificador PLE de Denis Gobo e obtive uma taxa de acerto de cache de buffer de 100% com PLE de 103, como é isso possível?
A taxa de acerto do buffer chache de 100% está dizendo que 100% das páginas necessárias estão sendo encontradas na memória, mas o PLE está dizendo que as páginas estão ficando na memória apenas por alguns minutos.
Talvez haja algum valor de PLE, abaixo do qual a taxa de acerto de cache de buffer não agrega valor?
SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 as BufferCacheHitRatio
FROM sys.dm_os_performance_counters a
JOIN (SELECT cntr_value, OBJECT_NAME
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Buffer cache hit ratio base'
AND OBJECT_NAME = 'SQLServer:Buffer Manager') b ON a.OBJECT_NAME = b.OBJECT_NAME
WHERE a.counter_name = 'Buffer cache hit ratio'
AND a.OBJECT_NAME = 'SQLServer:Buffer Manager'
SELECT *
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy'
AND OBJECT_NAME = 'SQLServer:Buffer Manager'
Por que eu me importo:
Minha instância é SQL 2017 CU13, OLTP pesado, com 4 GB de RAM para a instância SQL ( instância única, 6 GB de RAM no servidor ).
Eu sei que mais de 1,5 GB de RAM é dedicado ao Plan Cache, de acordo com algumas fontes dos 4 GB de RAM aqui, o Plan Cache deve ser capaz de usar 3 GB ( encontrei detalhes semelhantes em vários lugares, mas todos são antigos e nenhum é Microsoft )
Select ( SUM(size_in_bytes)) /1024 /1024 AS size_in_MB FROM sys.dm_exec_cached_plans
Ainda não usei nenhum xevents para medir o despejo do plano, apenas tentando entender as coisas.
Buffer cache hit ratio
eBuffer cache hit ratio base
são medidas para uma fatia de tempo muito pequena. Você acabou de executar sua consulta nos momentos em que as leituras recentes atingem o cache do buffer.Como prova, basta olhar para os valores brutos ao longo do tempo - eles sobem e descem.
Eu recomendaria uma olhada em outras métricas (talvez
sys.dm_io_virtual_file_stats
?) para ver que tipo de IO você está conduzindo.