2

首先,问题不是:如何查看 SQL Server 缓存命中率!对于那个我已经知道一个包含精确统计的视图。

我的问题实际上是:计算命中率的原始统计数据在哪里?Sql server 在 msdn pages 中声明缓存命中率是总缓存命中率除以总缓存查找次数。所以我假设 RDBMS 将这两个值存储在某个地方。

有人知道我在哪里可以访问它们吗?

4

2 回答 2

2

我相信您寻求的确切指标可通过动态管理视图 (DMV) 获得:

例如:

Select *
from sys.dm_os_performance_counters
WHERE OBJECT_NAME='SQLServer:Buffer Manager'    

您还可以使用 Windows 性能监视器查看缓冲区缓存统计信息:

有关 SQL Server 缓冲区管理指标的详细信息,请参阅参考:

要获取有关所有 SQL Server 内存空间的详细信息,请使用以下命令:

DBCC memorystatus

注意:关于问题的第 2 点,页面查找 == 缓存查找,并且此信息在上述 DMV 中可用。

于 2009-09-11T09:30:03.093 回答
0

如果您有权访问 SQL Server,那么您可以启动 SQL Server Profiler,它将向您显示在数据库上运行的所有查询。保持 SQL Server Profiler 运行并开始记录的 Web 测试(如在 VSTS Web 测试中)。

至少查看运行跟踪可以让您很好地了解访问 db 的次数。

假设您查询的是

select * from customer

看看它在跟踪中出现了多少次。

假设 200 次

& 测试迭代次数,比如说 800。

那么 800/(800-200) = 缓存命中率。

于 2009-10-08T09:06:42.877 回答