在 MS SQL Server 中,Lazy Writer 在定期检查空闲缓冲区列表并将一些干净的页面标记为空闲后,是否会花费资源从缓冲池中取出页面?还是自由标记的干净页面继续留在缓冲池中,直到需要从磁盘检索另一个页面并且后者覆盖自由标记的干净页面?
在 MS SQL Server 中,Lazy Writer 在定期检查空闲缓冲区列表并将一些干净的页面标记为空闲后,是否会花费资源从缓冲池中取出页面?还是自由标记的干净页面继续留在缓冲池中,直到需要从磁盘检索另一个页面并且后者覆盖自由标记的干净页面?
是的,这是 Lazy writer 的主要责任。它的工作是确保有一些空闲缓冲区,以便在需要时可以将新页面带入内存。
Lazy writer 会定期扫描缓冲池,查找最近最少使用的页面,或者您可以说“冷页”并将它们刷新到磁盘。如果有足够的可用内存,Lazy writer 将不会执行任何操作。如果需要内存将更多页面带入缓冲池,惰性写入器将刷新旧页面,创建空间并带入新页面。它不会将页面标记为干净