Sql server 在哪里可以找到:1)SQL Server中的缓存命中和2)缓存查找统计信息

Sql server 在哪里可以找到:1)SQL Server中的缓存命中和2)缓存查找统计信息,sql-server,caching,statistics,lookup,Sql Server,Caching,Statistics,Lookup,首先,问题不是:如何查看SQL Server缓存命中率! 对于这一点,我已经知道一个包含精确统计的视图 我的问题是:计算命中率的原始统计数据在哪里? Sql server在msdn页面中指出,缓存命中率是总缓存命中数除以总缓存查找数。所以我假设RDBMS将这两个值存储在某个地方 有人知道我在哪里可以访问它们吗?我相信您所寻求的确切指标可以通过动态管理视图(DMV)获得: 例如: Select * from sys.dm_os_performance_counters WHERE OBJEC

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

我的问题是:计算命中率的原始统计数据在哪里? Sql server在msdn页面中指出,缓存命中率是总缓存命中数除以总缓存查找数。所以我假设RDBMS将这两个值存储在某个地方


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

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

例如:

Select *
from sys.dm_os_performance_counters
WHERE OBJECT_NAME='SQLServer:Buffer Manager'    
您还可以使用Windows性能监视器查看缓冲区缓存统计信息:

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

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

DBCC memorystatus

注意:关于问题的第2)点,页面查找==缓存查找,同样,此信息在指定的DMV中可用。

如果您有权访问SQL Server,则可以启动SQL Server Profiler,它将显示数据库上运行的所有查询。保持SQL Server Profiler运行并启动录制的web测试(如VSTS web测试)

至少通过查看运行跟踪,您可以很好地了解数据库的访问次数

假设您的查询是

select * from customer
查看它在跟踪中出现的次数

比方说200次吧

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


然后800/(800-200)=缓存命中率

嗨,约翰,谢谢你的时间!您在帖子中提到的系统视图sys.dm_os_performance_counters,我几天前发现了它。这种观点的问题在于,你提到的计数器都是价格。也就是说,他们给我的是定量,而不是我所追求的绝对值。例如,您提到的页面查找是:页面查找/秒。我希望在两个不同的时间点检索页面查找,并确定该时间段的总页面查找。同样,对于cachehits:这样我就可以准确地知道比率所代表的时间间隔。2):P在我单击的位置的左边有一点。:)时空错位,我想!:D