宝哥软件园

将SQL Server内存数据写入磁盘的方法比较

编辑:宝哥软件园 来源:互联网 时间:2021-08-04

类型:数据库类大小:40.7M语言:中文评分:6.6标签:立即下载众所周知,SQLServer是先在内存中添加、删除、更改数据,可以大大加快数据操作速度;当内存中的数据被修改,而磁盘中的数据

在修改之前,出现了所谓的“脏页”。SQLServer是如何同步内存和磁盘的数据的?以下三种方法用于同步内存和磁盘数据。

LazyWrite(懒人写手):功能:1。管理SQLServer的空闲内存:a .定期检查空闲缓冲区列表的大小。当该值过低时,会扫描整个数据缓存,老化一段时间未使用的页面(通过LRU算法),释放内存空间;b .如果发现一段时间没有使用的脏页,它会写入磁盘,然后将该页的内存空间标记为可用空间;2.协调Windows和SQLServer内存:a .监控服务器内存。如果Windows的物理内存很少,它会将空闲缓冲区列表中的内存释放给Windows;b .当SQLServer负载较重时,当分配给SQLServer的内存没有达到最大服务器内存阈值时,也会增加空闲缓冲区列表的大小,以满足负载的需要。

检查点:功能:检查点是检查点进程创建的时间点。此时,SQLServer可以确认提交的东西所做的所有修改都已经写入磁盘。它是一个标记,是数据库恢复的起点,每分钟运行一次,从而保证数据库在启动数据库时,一分钟内就能完成恢复操作;但是,如果在此期间写入日志的数据少于10MB,SQLServer将不会自动启动检查点。

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

与LazyWrite相比,CheckPoint不从缓存中移除脏页,CheckPoint进程的工作是确保脏页写入磁盘,并在页头将缓存中的该页标记为干净。EagerWrite:它通常发生在BCP、select into、writetext、updatetext、批量插入等操作期间。为了加速这些操作,EagerWrite将管理数据页

这些操作不会等到所有页面都创建完毕后再将内存中的数据写入页面,而是将缓存中的数据写入页面,同时以更高的优先级进行创建。

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

更多资讯
游戏推荐
更多+