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

Przebudowa indeksów

Termin Definicja
Przebudowa indeksów

Przebudowa indeksów to ich ponowne utworzenie, porządkujące fizyczny układ danych i usuwające fragmentację.

Na czym polega przebudowa indeksów

Przebudowa indeksu to operacja, podczas której silnik bazy danych tworzy jego strukturę ponownie na podstawie aktualnych danych znajdujących się w tabeli lub powiązanym obiekcie. W zależności od rodzaju indeksu dane indeksowe są układane w uporządkowane strony, węzły drzewa albo inne struktury używane przez dany silnik. Operacja może obejmować utworzenie nowej kopii indeksu, zapisanie do niej wpisów w uporządkowanej kolejności, a następnie zastąpienie nią dotychczasowej struktury.

Przebudowa różni się od zwykłego odświeżenia statystyk. Statystyki opisują między innymi rozkład wartości i pomagają optymalizatorowi wybrać plan wykonania zapytania, natomiast przebudowa zmienia fizyczną organizację stron indeksu. Nie jest to również to samo co reorganizacja. Reorganizacja zazwyczaj porządkuje istniejącą strukturę stopniowo, podczas gdy przebudowa tworzy ją ponownie, co może skuteczniej ograniczyć fragmentację, ale zwykle wymaga większej ilości zasobów.

Fragmentacja, strony danych i koszt operacji

Fragmentacja indeksu powstaje wtedy, gdy kolejność logiczna wpisów przestaje odpowiadać ich rozmieszczeniu na stronach przechowywanych na nośniku. Częstą przyczyną są aktualizacje, usuwanie rekordów oraz dodawanie wartości, które nie pasują do bieżącego układu indeksu. W wyniku takich zmian strony mogą być wypełnione nierównomiernie, a powiązane fragmenty indeksu mogą wymagać większej liczby odczytów. Znaczenie fragmentacji zależy jednak od typu indeksu, wzorca zapytań, rozmiaru tabeli i tego, czy dane są odczytywane z pamięci, czy z dysku.

Przebudowa może zmniejszyć liczbę pustych miejsc i uporządkować logiczne sąsiedztwo wpisów. Nie gwarantuje jednak automatycznego przyspieszenia każdego zapytania. Jeżeli zapytanie nie korzysta z danego indeksu, jego przebudowa nie zmieni czasu wykonania. Podobnie ograniczenie fragmentacji nie naprawi niewłaściwego warunku wyszukiwania, braku odpowiedniego indeksu, błędnych statystyk ani przeciążenia procesora, pamięci lub podsystemu dyskowego.

Operacja wymaga czasu i dodatkowej pracy systemu. Silnik może wykonywać intensywne odczyty i zapisy, potrzebować dodatkowego miejsca na pliki tymczasowe lub nową wersję indeksu, a także zużywać pamięć i czas procesora. W czasie przebudowy mogą wystąpić blokady odczytów lub zapisów; dokładne zachowanie zależy od używanego silnika, wersji, konfiguracji oraz wybranego trybu wykonania. Dlatego nie należy zakładać, że każda przebudowa jest bezprzerwowa.

Jak ocenić, czy przebudowa jest uzasadniona

Decyzję powinno się opierać na pomiarach, a nie wyłącznie na samym istnieniu fragmentacji. Warto sprawdzić rozmiar indeksu, częstotliwość jego użycia, czas wykonywania zapytań przed i po operacji, liczbę odczytów oraz obciążenie systemu. Mały indeks, który mieści się w pamięci i nie jest używany przez kosztowne zapytania, może nie uzasadniać prac konserwacyjnych. Z kolei duży indeks wykorzystywany przy skanowaniu zakresów może mieć większe znaczenie dla liczby operacji wejścia-wyjścia.

Przed rozpoczęciem należy ustalić, jaki silnik bazy danych zarządza indeksami, ponieważ nazewnictwo, dostępne tryby pracy, zakres blokad i sposób raportowania fragmentacji nie są uniwersalne. Trzeba także zweryfikować wolne miejsce, harmonogram kopii zapasowych, okna serwisowe oraz możliwość przerwania operacji. Po zakończeniu należy ponownie zmierzyć stan indeksu i porównać go z wcześniejszymi wynikami. Sama informacja, że przebudowa zakończyła się poprawnie, nie dowodzi jeszcze poprawy działania aplikacji.

Ważne jest rozróżnienie między przebudową pojedynczego indeksu a przebudową całego zestawu indeksów. Operowanie na wszystkich obiektach bez analizy może powodować niepotrzebne obciążenie, szczególnie gdy część indeksów jest nieużywana albo zmienia się bardzo rzadko. Należy też pamiętać, że przebudowa nie zastępuje projektowania schematu, kontroli planów zapytań, właściwego doboru kluczy ani regularnego monitorowania pojemności bazy danych.

Bezpieczne wykonanie i weryfikacja po zakończeniu

Przebudowę powinno się planować w czasie, gdy obciążenie bazy jest przewidywalne i możliwe do kontrolowania. Przed operacją warto wykonać aktualną kopię zapasową zgodnie z przyjętą procedurą, zapisać metryki odniesienia oraz potwierdzić, że istnieje wystarczająca przestrzeń robocza. Podczas prac należy obserwować blokady, czas oczekiwania zapytań, wykorzystanie procesora, pamięci i dysku, a także wzrost rozmiaru plików bazy. W razie nieakceptowalnego wpływu na aplikację trzeba postępować zgodnie z mechanizmami anulowania przewidzianymi przez konkretny silnik.

Po przebudowie należy sprawdzić integralność indeksu, dostępność tabeli, działanie zapytań i ewentualne błędy zapisane w dziennikach. Warto porównać plany wykonania oraz czas reprezentatywnych operacji z wynikami sprzed konserwacji. Jeżeli problem nadal występuje, jego przyczyną może być między innymi nieaktualny plan, niewłaściwy indeks, blokowanie transakcji, ograniczenia sprzętowe albo błędna konfiguracja aplikacji. W takim przypadku ponawianie przebudowy bez dodatkowej diagnozy może tylko zwiększyć obciążenie.

W środowisku użytkownika końcowego podobne pojęcie może dotyczyć także indeksowania plików przez system operacyjny lub program wyszukujący. Tam przebudowa oznacza ponowne przeskanowanie wskazanych lokalizacji i utworzenie katalogu wyszukiwania, a nie naprawę indeksu tabeli w bazie danych. Przed wykonaniem czynności serwisowej trzeba więc ustalić, czy komunikat odnosi się do bazy danych, wyszukiwarki plików czy konkretnej aplikacji. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a prawidłowa diagnoza zakresu problemu pozwala dobrać właściwe działania bez niepotrzebnej ingerencji w dane.

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