Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SIZE_BASED_CLEANUP_MODE

Termin Definicja
SIZE_BASED_CLEANUP_MODE

SIZE_BASED_CLEANUP_MODE określa, czy Query Store automatycznie czyści dane po osiągnięciu limitu przestrzeni.

Rola SIZE_BASED_CLEANUP_MODE w Query Store

SIZE_BASED_CLEANUP_MODE jest opcją konfiguracyjną mechanizmu Query Store w Microsoft SQL Server. Określa, czy silnik ma automatycznie uruchamiać czyszczenie danych, gdy zajętość przestrzeni przeznaczonej na Query Store zbliża się do wartości ustalonej przez MAX_STORAGE_SIZE_MB. Query Store przechowuje między innymi informacje o zapytaniach, planach wykonania oraz zagregowanych statystykach czasu wykonywania, dlatego jego rozmiar może rosnąć wraz z liczbą różnych zapytań i planów.

Opcja ma dwa zasadnicze ustawienia: AUTO oraz OFF. Wartość AUTO włącza automatyczne czyszczenie zależne od rozmiaru, natomiast OFF wyłącza ten mechanizm. W SQL Server domyślną wartością tej opcji jest AUTO. Nie jest to ustawienie określające czas przechowywania danych. Za politykę usuwania nieaktualnych danych według wieku odpowiada osobno STALE_QUERY_THRESHOLD_DAYS.

Progi uruchomienia i zakończenia automatycznego czyszczenia

Przy ustawieniu AUTO SQL Server uruchamia czyszczenie, gdy dane Query Store zajmują około 90 procent wartości MAX_STORAGE_SIZE_MB. Czyszczenie ma doprowadzić do zmniejszenia zajętości do około 80 procent tego limitu. Przykładowo, przy limicie ustawionym na 1000 MB mechanizm może rozpocząć działanie w pobliżu 900 MB i zakończyć je po zmniejszeniu zajętości do około 800 MB. Są to wartości progowe opisujące działanie mechanizmu, a nie gwarantowany rozmiar końcowy w każdej chwili.

Podczas czyszczenia usuwane są w pierwszej kolejności dane oceniane jako najmniej kosztowne do usunięcia oraz najstarsze. Oznacza to, że automatyczne porządkowanie nie polega na prostym skasowaniu całej historii Query Store ani na usunięciu wszystkich danych należących do jednego planu. Konkretna kolejność zależy od wewnętrznej oceny przechowywanych elementów. Z tego powodu włączenie AUTO ogranicza wzrost magazynu, ale nie zastępuje świadomego ustalenia limitu i okresu retencji.

Wpływ limitu przestrzeni na zbieranie danych

Limit MAX_STORAGE_SIZE_MB nie jest sprawdzany po każdej zmianie rozmiaru. SQL Server kontroluje zajętość podczas zapisu danych Query Store na dysk, a częstotliwość takich zapisów zależy między innymi od opcji DATA_FLUSH_INTERVAL_SECONDS. Jeżeli w czasie pomiędzy kontrolami magazyn przekroczy określony limit, Query Store może przejść w stan tylko do odczytu. W takim stanie istniejące dane mogą być odczytywane, ale zbieranie nowych danych jest ograniczone.

Gdy SIZE_BASED_CLEANUP_MODE jest ustawione na AUTO, SQL Server uruchamia procedurę usuwania danych w celu odzyskania miejsca. Po zwolnieniu wystarczającej przestrzeni Query Store może automatycznie wrócić do stanu READ_WRITE. Przy bardzo intensywnym obciążeniu czyszczenie może jednak nie nadążać za przyrostem danych. Przejściowe pojawienie się stanu tylko do odczytu jest więc możliwe nawet wtedy, gdy automatyczne czyszczenie zostało włączone.

Wyłączenie opcji przez ustawienie OFF oznacza, że czyszczenie wywoływane zbliżaniem się do limitu nie zostanie automatycznie aktywowane. Nie wyłącza to samego Query Store i nie usuwa już zgromadzonych danych. Przy takim ustawieniu konieczne jest monitorowanie zajętości oraz zastosowanie innych ustawień retencji albo ręcznych działań administracyjnych, ponieważ przekroczenie limitu może wpłynąć na możliwość rejestrowania kolejnych informacji o zapytaniach.

Sprawdzanie wartości i bezpieczna interpretacja ustawienia

Bieżący stan można sprawdzić w widoku katalogowym sys.database_query_store_options. Kolumna size_based_cleanup_mode zwraca wartość liczbową: 0 oznacza OFF, a 1 oznacza AUTO. Czytelny opis znajduje się w kolumnie size_based_cleanup_mode_desc. W tym samym widoku można zestawić ustawienie z max_storage_size_mb, bieżącym stanem Query Store oraz innymi parametrami wpływającymi na retencję i zbieranie danych.

Zmiana konfiguracji odbywa się na poziomie konkretnej bazy danych za pomocą instrukcji ALTER DATABASE, na przykład ALTER DATABASE [NazwaBazy] SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO). Weryfikacja powinna obejmować zarówno zapisany tryb opcji, jak i faktyczny stan Query Store. Sama wartość AUTO nie dowodzi, że czyszczenie już się wykonało ani że magazyn mieści się aktualnie poniżej limitu.

W diagnostyce problemu należy porównać rozmiar Query Store z wartością MAX_STORAGE_SIZE_MB, sprawdzić, czy stan nie zmienił się na READ_ONLY, oraz ocenić przyrost liczby zapytań i planów. Przydatne jest również rozróżnienie czyszczenia zależnego od rozmiaru od czyszczenia zależnego od wieku. Nieprawidłowa interpretacja tych dwóch mechanizmów może prowadzić do wniosku, że dane powinny zostać usunięte po określonej liczbie dni, mimo że aktywne jest wyłącznie ograniczenie rozmiaru.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę