Por que a expectativa de vida da página é 0 (zero) no SQL Server 2005

8

Estávamos querendo saber a expectativa de vida da página para o SQL Server. Então, olhamos para o balcão usando Perform. O valor é ZERO e nunca muda. Eu pensei que deveria haver algum bug, então verifiquei a consulta DMV do SQL Server

SELECT [object_name],[counter_name],[cntr_value]
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'

Isso também retorna zero, o dia todo.

Para tornar isso mais interessante, verificamos o contador da taxa de acertos do cache do buffer, com uma média de 99 a 100.

Então, como a expectativa de vida da página é zero enquanto a 'taxa de acertos do cache do buffer' é 100?

O que estamos perdendo? se for sempre zero, significaria para mim que nada permanece no cache do buffer, o que parece incorreto se a taxa de acertos do cache do buffer for 100?

desde já, obrigado

ttomsen
fonte

Respostas:

4

Eu começaria executando as etapas descritas aqui:

Como recriar os contadores de desempenho de uma instância do SQL Server 2005 ou 2008

Atualização em agosto de 2015: o link acima aparece quebrado . Referência alternativa:

Solução de problemas: SQL Server (2005, 2008) Performance Counter Collection Problems (CSS)

Etapas essenciais do recurso vinculado

Usando um prompt de comando do administrador elevado, execute as seguintes etapas.

  1. Altere o caminho para o BINNdiretório da instância do SQL Server que você deseja corrigir.
    (Ex: C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn)
  2. Executar unlodctr <<REGISTERED SERVER NAME>>
    Por exemplo: unlodctr MSSQL$SQL2008ou SQLAgent$SQL2008...
  3. Executar lodctr /T:<<perf-sql* matching the counters you desire to load>>
    Por exemplo: perf-MSSQL$SQL2008sqlctr.iniou perf-SQLAgent$SQL2008sqlagtctr.inipara SQLAgent. A /Té importante para carregar o provedor de contador de desempenho do SQL Server como um provedor confiável .
  4. Ciclo do serviço de registro remoto:
    net stop "Remote Registry"em seguida,net start "Remote Registry"
  5. Forçar uma sincronização WMI usando winmgmt /resyncperfctr "<<PID>>"
    onde PID é a identificação do processo WinPriv.exe(você pode obter isso no Gerenciador de tarefas)

Além disso, a partir deste recurso , também pode ser necessário o seguinte:

  • Verifique se as permissões de segurança corretas foram concedidas à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    chave do Registro:

    1. Conceda permissões de Controle Total à conta do Proprietário Criador.
    2. Conceda permissões de Controle Total à conta de Administradores.
    3. Conceda permissões de leitura aos administradores do SQL nessa caixa / nó.
    4. Conceder permissões de controle total à conta do sistema
Remus Rusanu
fonte