SQL Server 缓冲存储器

happydreamer 2003-11-23 02:21:29


SQL Server 缓冲存储器

一 工作原理

SQL Server为每个实例建立一个列表,包括供该实例使用的页地址. 这些页构成了缓冲存储器.
第一次启动SQL Server时缓存的所有页面都是空闲的. 随着处理的开始,调度进程将陆续从磁盘调入
页面保存在缓冲存储器的中。如果其他进程需要读入或修改页面,就可以在缓冲存储器中进行,不需
要执行对磁盘的I/O操作. 通过访问内存中的页面, 缓冲存储器将加速读写操作,占用更少的资源.

缓冲页面头信息包含了一个访问计数器和脏页面指示器. 脏页面表示该页面在缓冲中被修改了但还没有写回磁盘. 缓冲中页面每被访问一次,计数器将自动加1. SQL Server 会定期扫描缓冲存储器,并将计数器除4取整. 如果除法的结果为0,就表示在最后一次扫描后,该页面的访问次数少于3次,系统将检查脏页面指示器:

如果该页面被修改,其修改结果将被写回磁盘,脏页面指示器被置位,然后把这个页面加入空闲列表中
如果该页面只被访问过,系统将释放该页面,不需要写回磁盘

SQL Server在Win NT或2000中运行时,将由一个扫描工作线程在排定一个异步读操作和该操作完成的时间间隔之间完成扫描缓冲存储器。扫描线程也会将脏页面写回磁盘中并将该页面添加到空闲列表中。这些写操作也是异步的,不会影响线程完成异步读操作。

系统还有一个叫Lazy Writer惰性写线程的线程,负责定期检查空闲缓冲列表中可供使用的空闲缓冲页数是否已经降到了特定大小。如果空闲列表的空闲缓冲页数已经少于特定的大小,Lazy Writer线程将扫描缓存,回收没有被使用的页面并且释放脏页面。在Win NT或2000系统中,Lazy Writer线程并没有太多的工作,绝大多数的工作都是由以上所介绍的扫描线程完成的,只是在I/O密集的系统中,将需要Lazy Writer线程帮助维护空闲列表,由于在Win98不支持异步写操作,Lazy Writer必须完成释放缓冲页面和将脏页面写回磁盘,扫描线程将帮助回写修改过的缓冲页面,但不会释放这些页面.



二 如何监视SQL Server缓冲存储器

通过Win2000管理工具的性能监视器可以查看以下对象

1) SQL Server Buffer Manager Object,Buffer Cache Hit Ratio counter
(缓冲管理器对象,缓冲存储器命中率计数器)
一个良好的系统具有90%或者更高的缓冲区缓存命中率,如果你的缓冲区缓冲命中率很低,可以给SQLServer 分配更多的内存

2) SQL Server Buffer Manager Object, Free Pages 空闲页计数器
看这个数值是否持续低于5MB,即640个页(SQL Server以8KB为一页),如果不能维持在这个值左右,说明需要为SQL Server分配更多的内存

3) SQL Server Buffer Manager Object, Procedure cache pages (过程缓存页)
用于存储以编译过的存储过程的页数目




...全文
97 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharplee82 2003-12-01
  • 打赏
  • 举报
回复
收藏!
Rotaxe 2003-11-27
  • 打赏
  • 举报
回复
学习!
prcgolf 2003-11-27
  • 打赏
  • 举报
回复
学习!!
snowolf_ren 2003-11-25
  • 打赏
  • 举报
回复
收藏﹗﹗﹗﹗﹗﹗﹗﹗﹗
lihonggen0 2003-11-25
  • 打赏
  • 举报
回复
不错,up
uujaff 2003-11-24
  • 打赏
  • 举报
回复
学习!收藏!up!!!!
qianduo 2003-11-24
  • 打赏
  • 举报
回复
up !!!! 收藏!
yelbigroc 2003-11-23
  • 打赏
  • 举报
回复
大哥能不能留下联系方式,有问题的话,还请多多包涵

qq:94040048
Kerniphan 2003-11-23
  • 打赏
  • 举报
回复
强的没话说!:)
orcale 2003-11-23
  • 打赏
  • 举报
回复
up
welyngj 2003-11-23
  • 打赏
  • 举报
回复
收藏

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧