SQLServer内存数据写入磁盘的方法比较

    众所周知,SQLServer增删改数据最先都是在内存中进行的,这可以大大加快数据操作的速度;当内存中的数据被修改了,而磁盘中的数据

还没有被修改时,就产生了所谓的”脏页“,SQLServer是如何同步内存和磁盘的数据的呢?以下三种方法就是为同步内存和磁盘数据而产生的。

 

LazyWrite(惰性写入器):
   作用:
   1.管理SQLServer空闲内存:
    a. 定期检查空闲缓冲列表的大小,当这个值过低的时候,它会扫描整个数据缓存,将一段时间没有使用的页面老化(通过LRU算法),释放内存空间;
    b. 如果找到一段时间没有被使用的脏页,它会将其写入磁盘,然后将这个页面的内存空间标记为空闲空间;
  
   2.协调Windows与SQLServer内存:
    a. 监视服务器内存,如果Windows物理内存很少,它会从空闲缓冲列表中释放内存给Windows;
    b. 在SQLServer负载很重时,它还会在分配给SQLServer的内存没有达到最大服务器内存阀值时,增加空闲缓冲列表的大小,以适应负载的需要。


CheckPoint:
   作用:检查点是检查点进程创建的一个时间点,在这个时间点,SQLServer可以确认所有提交的事物所做的修改都已经写入磁盘,它是一个标记,
         这个标记是数据库恢复的起始点,大约每分钟运行一次,这样在启动数据库时,确保数据库在一分钟内就能完成恢复操作;但是如果在这段
         时间内写入日志的数据不到10MB,SQLServer就不会自动发起检查点。

         跟踪标记(trace flag)3502在错误日志中记录检查点的开始和结束位置。

    与LazyWrite比较,CheckPoint不会从缓存中移出脏页,CheckPoint进程的工作只是保证脏页被写入磁盘,并且在页头将缓存中的这个页面标记为
    干净的页面。
 
EagerWrite:
    通常在BCP、SELECT INTO, WRITETEXT,UPDATETEXT,BULK INSERT等操作时发生,为了加快这些操作的速度,EagerWrite会管理数据页

的创建和分配,这些操作不会等待所有的页面创建完成后才将内存中的数据写入到页面中,而是以更高的优先级边创建边将缓存中的数据写入页面中,

以保证缓冲池有足够的空间来完成这些操作。

转载于:https://www.cnblogs.com/fygh/archive/2012/02/14/2351098.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用本软件,只需得到一个IDC平台下开通的MSSQL,如果对方的服务器安全没有做到位,即有可能利用本软件直接写文件到服务器的任意盘,并且一旦运行,软件将无限刷文件到服务器,可暂停和继续,缩小可至托盘。 需条件: 开启服务器1433端口;开通的数据库连接账号拥有一个对应的可完全管理的数据库。 说明: 第一步:得到一台服务器上开通的MSSQL数据库下的普通用户账号,并且拥有一个这个账号下可以管理的数据库。 第二步:利用本软件连接该数据库,若提示不成功,请看错误提示来判断是否开启1433端口或数据库用户是否有误。 第三步:连接成功后可自动跳转到数据写入界面,并在数据库中可以看到该服务器上所有数据库的列,请用鼠标选中账号下能够管理的数据库名。 第四步:在服务器路径编辑框下输入该服务器欲写入文件的具体路径,要注意不同系统,路径的形式也有所不同,如若填错,写入将提示失败。 第五步:以上步骤全部进行完毕,点击写文件到服务器,即可自动无限写入文件到指定的服务器路径(开始后自动在所指定的路径下写入以数字为名的文件,如需自定义名字,可在路径编辑框中填写完整的路径+文件名。) 提示:如果连接后肯定欲写入的路径没有任何错误,但是依然提示写入失败,说明服务器安全配置已经做到位,那么可放弃尝试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值