Sql Server内存瓶颈(读书笔记)

 

sql server内存瓶颈的类型

  1.外部内存压力

   2.外部内存压力

  外部内存压力可能发生在运行sql server的服务器上以及其它应用程序征用的情况,这将导致SQL server重新计算它的目标占有水平以及是否减少占用水平。

  为了判断是否有外部压力,可以查看以下计数器:

  1.Process-Working Set:这个计数器显示了每个进程虚拟地址空间中最近引用的页面的规模,从这个页面中找出消耗内存最多的进程,能够发现除SQL SERVER之外,是那个应用程序在消耗大量的内存。

下面的两个计数器可以判断SQL SERVER是否使用了足够多的内存:

1.Sql server:Buffer Manager-Total Pages 显示Sql Server已经获得的页面总数。

2.Sql Server:Buffer Manager-Target Pages Sql Server Buffer Pool 必须的页面理想数目。

如果Target Pages大于Total Pages时,则可能存在外部的内存压力。

内部内存压力:

内部内存压力通常是在收缩缓冲池导致的。一个原因是Max Server Memory的值减小,导致留给SQL SERVER的缓冲池过小。另外一个导致内部内存的压力是作业消耗了SQL SERVER 内部的内存,这些内存在缓冲池以外。扩展存储过程,COM对象,SQLCLR以及链接服务器都是消耗进程空间的组件,并可能对缓冲池形成压力。

3.确认内存瓶颈

SQL Server:Buffer manager-Page life Expectancy 表示数据也在缓冲池中驻留时间长度,以秒为单位,    这个计数器的值越大,从内存的角度看服务器越健康。如果在应用过程中,观察到Pae kife Expectancy明显降低,并且这种性能上的降低能和感知上的应用性能降低联系到一起,则对理解性能问题有帮助。

 Sql Server:Buffer Manager-Buffer cache hit ratio 所请求的页面在Sql Server缓冲池中被找到的数目,如果在缓冲中没找到数据页,sql server必须将它们从磁盘中读入到缓冲区,通常会因为磁盘延迟和寻到时间变得很慢。

Sql Server:Buffer Manager-Stolen pages 代表内存中被其它进程挪用的页面。正在经受内存压力的服务器往往会显示出相对于总目标页面较高数量的挪用页面。

Sql Server:Buffer Manager-Memory Grants Pending 表示等待内存授权的进程对列。通常,有任何等待内存的进程对列,性能都会降低。

Sql Server:Buffer Manager-Checkpoint pages/sec 检查点要求将所有的脏页写到磁盘上,当服务器运行在内存较少的时候,检查点会比正常情况下更频繁的发生,因为SQL server会试图在缓冲池中创建空间。

Sql Server:Buffer manager-Lazy writes/sec:每秒钟Sql Server将脏页从缓冲池重新部署到磁盘的次数,磁盘I/O代价非常高,应为SQL SERVER提供足够多的缓冲池,使Lazy writes的值尽可能接近于0.如果显示的次数大于20,则可以确信缓冲池不够大。

基于配置的内存瓶颈

主要指SQL SERVER的Min Server Memory和Max Server Memory.

SQL Server的内存分为两部分,缓冲池和MemoryToLeave区域,配置值只控制了缓冲池。

基于模式的内存的瓶颈

System Monitor较难检测出基于模式的内存瓶颈,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值