Difference between Checkpoint and LazyWriter
CheckPoint
|
Lazy Writer
|
1. Flush dirty pages to Disk
|
1. Flush dirty pages to disk.
|
2. Flush only Data pages to disk
|
2. Check for available memory and removed Buffer pool (execution plan/compile plan/ Data pages /Memory objects)
|
3. Default, Occurs approximately every 1 minute
|
3. Occurs depending upon memory pressure and resource availability
|
4. Can be managed with sp_confige -recovery interval option
|
4. It is lazy, Sql server manages by its own.
|
5. Does not check the memory pressure
|
5. Monitor the memory pressure and try maintain the available free memory.
|
6. crash recovery process will be fast to read log as data file is updated.
|
6. No role in recovery
|
7. Occurs for any DDL statement
|
7. Occurs per requirement
|
8. Occurs before Backup/Detach command
|
8. Occurs per requirement
|
9. Depends upon the configuration setting, we can control.
|
9. Works on Least recent used pages and removed unused plans first, no user control.
|
10. for simple recovery it flush the tlog file after 70% full.
|
10. No effect on recovery model.
|
11. can manually /Forcefully run command “Checkpoint”
|
11.No command for Lazy Writer
|
12. Very Less performance impact
|
12. No performance impact
|
Checkpoint:
Checkpoint occurs on database level.
To find when the checkpoint occur use undocumented function
select * from ::fn_dblog(null,null)
WHERE [Operation] like ‘%CKPT’
Also enabling trace flag will provide information on error log when checkpoint started at what database.
DBCC TRACEON(3502, -1)
Checkpoint
impact the performance (very low IO) for heavy system, so we can even
disable automatic checkpoint —-Never do this, using trace flag 3505
LazyWriter:
Lazy writer is on the server to check when lazy writer occurs use
SQL Server Buffer Manager Lazy writes/sec
No comments:
Post a Comment