SQL Server использует рабочий поток (worker thread) и поток отложенной записи (lazy writer thread) для периодического обращения к буферу памяти, планирования асинхронной записи на диск затронутых страниц и освобождения неактивных страниц для повторного использования.
Рабочие потоки являются потоками других процессов SQL Server, таких как процесс чтения данных, инициированный пользователем.
Эти потоки обращаются к кэшу, ожидая выполнения своего задания.
Поток отложенной записи периодически проверяет список свободных буферов, и, если его размер меньше определенного значения (в зависимости от размера кэша), он сканирует буферный кэш и освобождает пространство.
Термин «отложенная запись» отражает принцип работы данного потока, который «спит», просыпается на некоторое время, сканирует кэш и снова «засыпает».
Поток отложенной записи и рабочие потоки записывают большую часть затронутых страниц между процессами контрольной точки.
Таким образом, процесс контрольной точки в большинстве случаев находит лишь несколько затронутых страниц, которые нужно записать на диск.
Разница между процессом контрольной точки и потоками заключается в том, что первый не помещает страницы буфера обратно в список свободных буферов.
Эти три процесса, работая совместно, делают операцию записи данных на диск более ровной, что позволяет снизить нагрузку и повысить производительность.