SQL: Jak często uruchamia się automatycznie CHECKPOINT?

13-cze-2012

CHECKPOINT to proces, który przegląda bufor zawierający odczytane z dysku strony i jeżeli storana znajdująca się w buforze uległa zmianie, a zmiana nie trafiła jeszcze do bazy danych (a jedynie do loga), to przepisuje tę stronę na dysk do pliku bazy danych.

CHECKPOINT uruchamia się od czasu do czasu i takie wytłumaczenie trochę niepokoi administratorów 🙂 Parametr, który pozwala określić tę częstość to recovery interval (min). Jest to opcja serwera, którą można skonfigurować poprzez sp_configure.

Załóżmy, że baza danych pracuje w RECOVERY Model FULL. Załóżmy, że ustawiono:

sp_configure 'recovery interval (min), 5
RECONFIGURE

Serwer obsługuje żądania użytkowników i generowane przez nich modyfikacje danych, zapisując informacje do loga transakcyjnego i oczywiście zachowuje te zmiany też w buforze. Serwer wie także ile „mniej więcej” czasu potrzeba na przekopiownie dokonywanych zmian przez użytkowników z bufora do pliku bazy danych. Kiedy zmian będzie już tyle, że czas zapisu informacji na dysk byłby dłuższy niż 5 minut, wyzwoli się CHECKPOINT.

CHECKPOINT uruchamia się zatem tak często, jak jest to wymagane ze względu na czas zapisu buforów na dysk.

Wysoka wartość recovery interval (min) powoduje, że CHECKPOINT uruchomi się rzadziej, ale będzie miał więcej pracy

Niska wartość recovery interval (min) powoduje, że CHECKPOINT uruchomi się częściej i będzie miał mniej pracy.

Całkiem, jak w życiu prawda?

Źródło:

  • Books Online (dokumentacja dla opcji recovery interval (min))

Komentarze:

  1. Mobilo » Blog Archive » Rodzaje CHECKPOINT w SQL 2012 napisał,

    […] poście http://www.mobilo24.eu/sql-jak-czesto-uruchamia-sie-automatycznie-checkpoint/ pisałem o tym kiedy uruchamia się CHECKPOINT oraz jak można wpływać na częstość […]

Autor: Rafał Kraik