tto*_*sen 8 sql-server-2005 sql-server page-life-expectancy
我们一直想知道 SQL Server 的页面预期寿命。所以我们使用 Perform 来查看计数器。该值为零且永不更改。我认为一定有一些错误,所以我检查了 SQL Server DMV 查询
SELECT [object_name],[counter_name],[cntr_value]
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'
Run Code Online (Sandbox Code Playgroud)
这也整天返回零。
为了让这更有趣,我们检查了“缓冲区缓存命中率”计数器,它的平均值约为 99-100。
那么当“缓冲区缓存命中率”为 100 时,页面预期寿命如何为零?
我们缺少什么?如果它始终为零,那对我来说意味着缓冲区缓存中没有任何内容,如果缓冲区缓存命中率是 100,这似乎不正确?
提前致谢
我将从执行此处概述的步骤开始:
如何重建 SQL Server 2005 或 2008 实例的性能计数器
2015 年 8 月更新:以上链接似乎已损坏。替代参考:
疑难解答:SQL Server(2005、2008)性能计数器收集问题(CSS)
链接资源的基本步骤
使用提升的管理员命令提示符执行以下步骤。
BINN
要更正的 SQL Server 实例的目录。C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn
)unlodctr <<REGISTERED SERVER NAME>>
unlodctr MSSQL$SQL2008
或SQLAgent$SQL2008
...lodctr /T:<<perf-sql* matching the counters you desire to load>>
perf-MSSQL$SQL2008sqlctr.ini
或perf-SQLAgent$SQL2008sqlagtctr.ini
对于 SQLAgent。/T
将 SQL Server 性能计数器提供程序加载为可信提供程序非常重要。net stop "Remote Registry"
然后net start "Remote Registry"
winmgmt /resyncperfctr "<<PID>>"
WinPriv.exe
(您可以从任务管理器中获取)此外,从该资源中,还可能需要以下内容:
确保已向HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
注册表项授予正确的安全权限: