Потоки операционной системы

 

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

 

Рабочие потоки являются потоками других процессов SQL Server, таких как процесс чтения данных, инициированный пользователем.

Эти потоки обращаются к кэшу, ожидая выполнения своего задания.

 

Поток отложенной записи периодически проверяет список свободных буферов, и, если его размер меньше определенного значения (в зависимости от размера кэша), он сканирует буферный кэш и освобождает пространство.

Термин «отложенная запись» отражает принцип работы данного потока, который «спит», просыпается на некоторое время, сканирует кэш и снова «засыпает».

 

Поток отложенной записи и рабочие потоки записывают большую часть затронутых страниц между процессами контрольной точки.

 

Таким образом, процесс контрольной точки в большинстве случаев находит лишь несколько затронутых страниц, которые нужно записать на диск.

 

Разница между процессом контрольной точки и потоками заключается в том, что первый не помещает страницы буфера обратно в список свободных буферов.

 

Эти три процесса, работая совместно, делают операцию записи данных на диск более ровной, что позволяет снизить нагрузку и повысить производительность.