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

Odbudowa statystyk

Termin Definicja
Odbudowa statystyk

Odbudowa statystyk to ich ponowne wyliczenie, przywracające optymalizatorowi aktualny obraz rozkładu danych.

Na czym polega odbudowa statystyk w bazie danych

Odbudowa statystyk to ponowne zebranie i wyliczenie informacji opisujących zawartość tabel oraz indeksów. System zarządzania bazą danych zapisuje na tej podstawie między innymi liczbę wierszy, liczbę różnych wartości w kolumnie, zakres wartości, częstość występowania danych oraz rozkład wartości przedstawiany niekiedy w postaci histogramu. Informacje te nie służą do przechowywania właściwych rekordów. Są pomocniczym opisem danych wykorzystywanym przez optymalizator zapytań.

Optymalizator korzysta ze statystyk podczas wyboru planu wykonania zapytania. Na ich podstawie szacuje, ile wierszy spełni warunki WHERE, ile rekordów zostanie połączonych przez operację JOIN oraz czy korzystniejsze będzie użycie indeksu, skan tabeli, sortowanie albo inna metoda dostępu. Gdy statystyki są nieaktualne, szacunki mogą znacząco odbiegać od rzeczywistej liczby rekordów. Odbudowa polega więc na ponownym obliczeniu tych danych, aby decyzje optymalizatora odnosiły się do aktualnego stanu tabel.

Dlaczego statystyki tracą aktualność

Statystyki starzeją się wskutek zmian w danych. Duże partie rekordów mogą zostać dodane, usunięte albo zmodyfikowane, a wartości w kluczowych kolumnach mogą zmienić swój rozkład. Problem występuje również wtedy, gdy tabela przez długi czas rośnie, lecz mechanizm automatycznej aktualizacji statystyk nie uruchamia się w odpowiednim momencie albo działa według progów ustalonych przez konkretny silnik bazy danych. Sam fakt istnienia indeksu nie gwarantuje, że opis rozkładu danych jest świeży.

Szczególnie istotna jest zmiana rozkładu, a nie tylko liczby wierszy. Jeżeli większość rekordów zaczyna mieć tę samą wartość, wcześniejsza informacja o równomiernym rozłożeniu danych może prowadzić do błędnej oceny selektywności warunku. Podobnie działa masowe usunięcie rekordów z jednego zakresu, import danych o nietypowych wartościach lub aktualizacja kolumny używanej w filtrach. Objawem mogą być wolniejsze zapytania, wybór nieefektywnego planu, nadmierne zużycie pamięci na sortowanie albo niepotrzebne odczyty z dysku. Odbudowa statystyk nie oznacza jednak naprawy uszkodzonych rekordów ani rekonstrukcji samego indeksu.

Wpływ odświeżonych danych na plan wykonania

Po odbudowie statystyk optymalizator może ponownie oszacować selektywność predykatów i przewidywany koszt poszczególnych operacji. Jeżeli aktualne dane wskazują, że warunek zwraca niewiele wierszy, silnik może wybrać dostęp przez indeks. Gdy warunek obejmuje dużą część tabeli, skanowanie tabeli może być bardziej uzasadnione niż wielokrotne odczyty indeksu i odpowiadających mu wierszy. Przy łączeniu tabel poprawne statystyki pomagają dobrać kolejność operacji oraz sposób wykonania połączenia.

Proces powinien być wykonywany zgodnie z dokumentacją używanego systemu baz danych, ponieważ nazwy obiektów statystyk, tryby próbkowania, zakres aktualizacji i zachowanie blokad różnią się między produktami. W jednych silnikach można odświeżyć statystyki konkretnej kolumny, indeksu lub tabeli, w innych dostępne są dodatkowe opcje dotyczące pełnego skanowania albo próbkowania części rekordów. Pełne skanowanie zwykle dostarcza dokładniejszego obrazu, lecz wymaga odczytu większej ilości danych. Próbkowanie może ograniczyć koszt operacji, ale przy nierównomiernym rozkładzie wartości daje mniej dokładne oszacowania. Po wykonaniu odbudowy należy porównać plan i czas zapytania przed oraz po operacji, ponieważ sama aktualizacja statystyk nie gwarantuje poprawy każdego zapytania.

Weryfikacja odbudowy statystyk w środowisku komputerowym

Diagnostyka powinna rozpocząć się od ustalenia, które zapytania zwalniają i czy ich plany zawierają duże różnice między liczbą wierszy przewidywaną a rzeczywiście przetworzoną. Następnie sprawdza się wiek statystyk, zakres zmian w tabelach, kolumny używane w filtrach i połączeniach oraz konfigurację automatycznej aktualizacji. Warto również zweryfikować, czy problem nie wynika z braku indeksu, nieoptymalnego warunku, blokad, ograniczeń sprzętowych albo przeciążenia pamięci. Odbudowa statystyk jest działaniem konserwacyjnym dotyczącym informacji dla optymalizatora, a nie uniwersalną metodą przyspieszania bazy.

Po zakończeniu operacji trzeba potwierdzić, że statystyki otrzymały nowy czas aktualizacji, plan wykonania został ponownie opracowany lub może zostać użyty zgodnie z zasadami danego silnika, a obciążenie systemu wróciło do akceptowalnego poziomu. W przypadku dużych tabel termin i sposób wykonania dobiera się tak, aby koszt odczytu danych nie zakłócił pracy aplikacji. Jeżeli po odbudowie nadal występują błędne szacunki, przyczyną może być korelacja między kolumnami, nietypowy rozkład wartości, parametryzacja zapytań lub niewystarczająca reprezentatywność próby. Wtedy potrzebna jest dalsza analiza planów, schematu tabel i rzeczywistych danych wejściowych.

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