checkpoint目的是减少数据库的恢复时间(服务奔溃或重启服务后的恢复),而lazy writer的目的是保证SQL OS 有空闲缓存块和系统有一定可用内存。
Checkpoint和lazyWriter都会将缓冲区内脏页写入到磁盘;
lazywriter会更新缓存区空闲可用列表,而checkpoint不会;
checkpoint操作会被记录到数据库日志中,而lazywriter不会;
checkpoint的触发条件
1. 自上次检查点后产生大量日志
2. 服务实例关闭
3. 数据库完整备份或差异备份(日志备份不会触发checkpoint)
4. 数据库恢复模式为简单恢复模式下当日志文件使用超过70%时
lazywriter的触发条件
1. 缓存区内可用空闲缓存块数据不足
2. Windows系统内存压力