26
Контрольные точки (Checkpoint)
SQL Server Database Engine выполняет изменения страниц базы данных в
памяти (в буферном кэше) и не записывает эти страницы на диск сразу же
после каждого изменения. Вместо этого Database
Engine периодически
создает контрольную точку на каждой базе данных. Именно в контрольной
точке он записывает из памяти на диск текущие страницы, измененные в
памяти (известные как измененные незафиксированные страницы), а
также
записывает сведения в журнал транзакций.
Компонент Database Engine поддерживает четыре типа контрольных точек:
автоматические, косвенные, ручные и внутренние.
Автоматические
контрольные точки (Automatic checkpoints). Создаются
с помощью системной хранимой процедуры sp_configure, которой
передается параметр конфигурации сервера recovery interval:
EXEC sp_configure "recovery interval«,»seconds" **.
В соответствии с верхним пределом времени,
указанном в этом
параметре, контрольные точки автоматически выдаются в фоновом
режиме. Автоматические контрольные точки выполняются до их
завершения. Автоматические контрольные точки регулируются в
зависимости от числа необработанных
записей и от того, обнаруживает
ли компонент Database Engine увеличение задержки записи более чем на
20 миллисекунд.
Косвенные
контрольные точки (Indirect checkpoints). Создаются с
помощью инструкции ALTER DATABASE:
ALTER DATABASE … SET TARGET_RECOVERY_TIME
=target_recovery_time { SECONDS | MINUTES }.
Выдаются в фоновом режиме для обеспечения соответствия
пользовательскому целевому времени восстановления
для конкретной
базы данных. Целевое время восстановления по умолчанию равно 0, что
приводит к использованию эвристики автоматических контрольных точек
в базе данных. Если была использована инструкция ALTER DATABASE
для установки TARGET_RECOVERY_TIME в значение > 0, то
используется это значение, а не интервал восстановления, указанный для
экземпляра сервера.
Ручные
контрольные точки (Manual checkpoints). Выдаются при
выполнении команды Transact-SQL CHECKPOINT:
CHECKPOINT [ checkpoint_duration ]
Ручная контрольная точка срабатывает в текущей базе данных для
конкретного соединения. По умолчанию ручная контрольная точка
выполняется до ее завершения. Регулирование работает так же, как и для
автоматической контрольной точки.
При необходимости параметр
checkpoint_duration указывает требуемое время в секундах для
завершения контрольной точки.
27
Внутренние
контрольные точки (Internal checkpoints). Выдаются
различными операциями сервера, такими
как резервное копирование и
создание моментального снимка базы данных, для обеспечения
соответствия образа диска текущему состоянию журнала.
Do'stlaringiz bilan baham: