SQL Server内存数据写入磁盘的方法比较
来源:互联网 发布:linux ftp绑定域名 编辑:程序博客网 时间:2024/06/15 09:37
众所周知,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会管理数据页
的创建和分配,这些操作不会等待所有的页面创建完成后才将内存中的数据写入到页面中,而是以更高的优先级边创建边将缓存中的数据写入页面中,
以保证缓冲池有足够的空间来完成这些操作。
- SQL Server内存数据写入磁盘的方法比较
- DataTable的数据批量写入SQL SERVER数据库方法速度比较[转]
- 【SQL Server性能优化】删除大量数据的方法比较
- java将数据写入内存,磁盘
- SQL Server 比较日期大小的方法
- 数据写入文件的几种方法速度比较
- 数据写入磁盘的过程,咔咔的!
- SQL SERVER高性能写入方法的总结
- 磁盘扇区数据的读取和写入
- 未提交的数据写入磁盘
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- SQL Server中数据导入导出三种方法比较
- SQL Server中数据导入导出三种方法比较
- SQL Server中数据导入导出三种方法比较
- SQL Server中导入导出数据三方法比较
- 将变量写入磁盘文件的方法
- SQL Server中如何比较两个表的各组数据方法总结
- httpCLIENT的GET
- 2013年终总结
- 妇产课本上学不到的
- 判断链表有环问题
- HTTP协议详解
- SQL Server内存数据写入磁盘的方法比较
- Business Objects 基础
- 快速排序——java实现
- spring依赖注入的3种实现方式
- Visual Studio原生开发的10个调试技巧
- 理解SQL SERVER中的分区表
- devexpress gridview 保存、加载布局
- Unity shader 初探
- dom4j(5) 编码 命名空间处理