sql server实例内存使用统计

SQL SERVER内存按存放数据的类型,大概可以分为三类:

1、buffer pool,存放数据页面的缓冲区,sql server数据都是存放在一个个8K的页面里,当用户需要使用这个页面上的数据时,都是把整个页面加载到内存的buffer pool区缓存起         来。

2、各类consumer:

      connect:SQL SERVER为每一个客户端连接分配一块内存,用来存储连接的信息,以及发过来的指令和缓存指令结果待待客户端取走

      无数据:表、存储过程、索引等的元数据

      锁:SQL SERVER中锁是稀有资源,会占用大量内存

      Query plan:缓存SQL的执行计划

      Optimizer:生成执行 计划过程中需要使用内存

3、线程内存:sql server会为每个线程分配0.5M的内存,用来存放线程的数据结构和相关信息


下面的语句可以统计服务器实例的内存使用情况:

select type,                          
    SUM(single_pages_kb)/1024 single_pages_mb,                          
    SUM(multi_pages_kb)/1024 multi_pages_mb,                          
    SUM(virtual_memory_reserved_kb)/1024 virtual_memory_reserved_mb,                          
    SUM(virtual_memory_committed_kb)/1024 virtual_memory_committed_mb,                          
    sum(shared_memory_committed_kb)/1024 shared_memory_committed_mb                          
 from sys.dm_os_memory_clerks                          
 group by type                                             
 order by 1;
结果如下:

CACHESTORE_OBJCP:存储过程、函数等的执行计划

CACHESTORE_SQLCP:SQL语句的执行计划(这里SQL语句的执行计划占用了多达6G的内存,是因为程序存在大量没有绑定变量的SQL语句,下次再做介绍)

MEMORYCLERK_SQLBUFFERPOOL:Buffer pool

OBJECTSTORE_LOCK_MANAGER:锁


下面再来看下BUFFER POOL中,都缓存了哪些表(当前数据库)的数据:

select OBJECT_NAME(object_id) 表名,COUNT(*) 页数,COUNT(*)*8/1024.0 Mb                            
from   sys.dm_os_buffer_descriptors a,sys.allocation_units b,sys.partitions c                            
where  a.allocation_unit_id=b.allocation_unit_id 
       and b.container_id=c.hobt_id           
       and database_id=DB_ID()                            
group by OBJECT_NAME(object_id)                         
order by 2 desc




  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值