Atualmente, estou trabalhando no monitoramento do desempenho do SQL Server. Encontrei o seguinte script[1] que calcula 'Porcentagem de pesquisas de página' - a sugestão é que um valor "bom" seja algo menor que 100.
SELECT 1.0*cntr_value /
(SELECT 1.0*cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Batch Requests/sec')
AS [PageLookupPct]
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page lookups/sec'
Agora, executei esse script em cerca de uma dúzia de servidores diferentes - principalmente virtuais, mas alguns físicos, principalmente 2008R2 Enterprise, mas alguns de 2005, alguns ao vivo e alguns em desenvolvimento, e até mesmo uma edição física do 2008R2 Express que sempre foi apenas uma testemunha servidor e está atualmente inativo (sem espelhos configurados com failover ativo). Em apenas um desses servidores o valor esteve abaixo de 100. Na maioria dos casos, foi na casa dos 1000 ou pelo menos em meados dos 100. No servidor testemunha inativo, o valor era de ridículos 20.000!
Isso indica que temos problemas generalizados nessa área ou há alguma explicação inocente para o motivo desse número ser tão alto em tantos servidores diferentes? Estamos enfrentando um desempenho lento em alguns desses servidores, portanto, seria útil para mim entender melhor o que essa figura está me dizendo.
[1] - http://thomaslarock.com/2012/05/are-you-using-the-right-sql-server-performance-metrics/
A métrica está tentando medir o número de operações IO lógicas executadas por cada solicitação, em média. Se o seu servidor estiver, digamos, atendendo a um site movimentado, provavelmente é uma boa métrica (talvez 100 seja muito alto para isso!).
A testemunha terá apenas atividade interna. Em outras palavras, ele tocará arquivos de dados internamente, devido a vários processos em segundo plano, apesar de nunca ver nenhum lote real. Como tal, todas as E/S lógicas internas serão relatadas como causadas pelos poucos lotes que este servidor viu.
Eu diria que a métrica que Thomas está recomendando tem algum valor, mas apenas em uma carga de trabalho semelhante ao que Thomas tinha em mente. Um servidor que possui apenas atividade em segundo plano, como sua testemunha, não relatará nada significativo com essa proporção. Um servidor que executa relatórios intensivos de DW pode ver apenas 1 solicitação em lote por hora e executar milhões de pesquisas de página para essa solicitação. Um número absoluto como 'deve estar abaixo de 100' só é valioso acompanhado de isenções de responsabilidade em letras pequenas, como deve estar abaixo de 100, se sua carga de trabalho tiver solicitações em lote frequentes o suficiente para estabelecer tendências estatísticas significativas e se espera que cada solicitação em lote execute menos de 100 pesquisas de página em média . Você entendeu a ideia...