查看数据库缓存大小

我们都知道sqlserver存在缓存机制,那么我们要想知道到底缓存了哪些数据,每个库缓存了多大的数据?

我们可以用一个DMV查看,sys.dm_os_buffer_descriptors

 select COUNT(*)*8 as KB,case database_id when 32767 then 'ResourceDb' else  DB_NAME(database_id) end dbname from sys.dm_os_buffer_descriptors 
 group by database_id

这样的话我们可以看到每个数据库缓存的数据大小,同时我们也可以根据is_modified来判断每个库的修改比例

 select COUNT(*)*8/1000 as MB,DB_NAME(a.database_id),b.weigai,COUNT(*) 总数,100-(b.weigai*1.00/COUNT(*))*100 百分比
 from sys.dm_os_buffer_descriptors a left join 
 (select COUNT(*) weigai,database_id from sys.dm_os_buffer_descriptors 
 where is_modified=0
 group by database_id) b on a.database_id=b.database_id
 group by a.database_id ,b.weigai

其中的百分比就是缓存数据修改的比例,如果百分比越接近0那说明这个库读操作越高

 

转载于:https://www.cnblogs.com/jinshaohua/p/5733350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值