checkpoint目的是减少数据库的恢复时间(服务奔溃或重启服务后的恢复),而lazy writer的目的是保证SQL OS 有空闲缓存块和系统有一定可用内存。

Checkpoint和lazyWriter都会将缓冲区内脏页写入到磁盘;

lazywriter会更新缓存区空闲可用列表,而checkpoint不会;

checkpoint操作会被记录到数据库日志中,而lazywriter不会;

checkpoint的触发条件

1. 自上次检查点后产生大量日志

2. 服务实例关闭

3. 数据库完整备份或差异备份(日志备份不会触发checkpoint)

4. 数据库恢复模式为简单恢复模式下当日志文件使用超过70%时

lazywriter的触发条件

1. 缓存区内可用空闲缓存块数据不足

2. Windows系统内存压力