| Termin | Definicja |
|---|---|
| Przebudowa indeksu | Przebudowa indeksu to jedna z metod usuwania fragmentacji, alternatywna wobec jego reorganizacji. Przebudowa indeksu w bazie danych – na czym polegaPrzebudowa indeksu to operacja serwisowa wykonywana w systemie bazodanowym w celu utworzenia indeksu od nowa, z uporządkowaniem jego struktury oraz ponownym zapisaniem powiązań do rekordów. Indeks można porównać do uporządkowanego spisu treści: zamiast przeglądać całą tabelę, mechanizm wyszukuje potrzebne informacje na podstawie dodatkowej struktury. Z czasem taka struktura może ulec fragmentacji, czyli rozproszeniu kolejnych fragmentów danych w wielu miejscach pamięci. Pojawiają się wtedy dodatkowe operacje odczytu, większe zapotrzebowanie na zasoby oraz dłuższy czas wykonywania zapytań. Podczas przebudowy tworzona jest nowa wersja indeksu na podstawie aktualnych danych. Po zakończeniu operacji zastępuje ona wcześniejszą strukturę. Pozwala to uporządkować strony indeksu, ograniczyć puste miejsca powstałe po zmianach danych i poprawić spójność układu informacji. Nie jest to jednak sposób na naprawę błędnych danych w tabeli. Przebudowa nie zmienia przeznaczenia kolumn, nie poprawia automatycznie nieprawidłowych relacji i nie zastępuje analizy zapytań. Przebudowa indeksu a reorganizacja – ważne porównaniePrzebudowa indeksu oraz reorganizacja indeksu służą podobnemu celowi, ale różnią się zakresem działania i wpływem na środowisko pracy. Reorganizacja porządkuje istniejącą strukturę stopniowo, zwykle z mniejszym obciążeniem, dlatego może być przydatna przy umiarkowanej fragmentacji albo wtedy, gdy ciągłość działania ma szczególne znaczenie. Przebudowa tworzy strukturę ponownie, co zazwyczaj daje bardziej zdecydowany efekt, lecz może wymagać większej ilości czasu, pamięci i miejsca roboczego. Wybór metody nie powinien opierać się wyłącznie na jednej wartości procentowej. Znaczenie ma rozmiar indeksu, częstotliwość zmian w tabeli, rodzaj zapytań, dostępne zasoby oraz to, czy podczas operacji mogą wystąpić blokady. Mały indeks o wysokiej fragmentacji nie zawsze wymaga natychmiastowej przebudowy, podobnie jak duży indeks o niższym poziomie fragmentacji może wpływać na działanie aplikacji bardziej odczuwalnie. Ocena powinna uwzględniać rzeczywisty czas zapytań, obciążenie systemu i historię zmian danych.
Warto odróżnić fragmentację logiczną od fizycznej. Fragmentacja logiczna dotyczy kolejności stron i wpisów w strukturze, natomiast fragmentacja fizyczna odnosi się do rozmieszczenia danych na nośniku. Przebudowa może poprawić organizację indeksu, ale końcowy efekt zależy także od systemu plików, rodzaju pamięci masowej, ustawień bazy oraz sposobu wykonywania operacji wejścia i wyjścia. Typowe problemy wskazujące na przebudowę indeksuNajczęstszym sygnałem jest stopniowe wydłużanie zapytań, które wcześniej działały sprawnie. Może dotyczyć to filtrowania po często używanej kolumnie, sortowania wyników, wyszukiwania zakresowego albo łączenia wielu tabel. Czasami problem ujawnia się dopiero przy większym zbiorze danych, ponieważ niewielka tabela nie pokazuje kosztu dodatkowych odczytów. Zdarza się również, że aplikacja reaguje poprawnie poza godzinami największego ruchu, a zwalnia po intensywnym dodawaniu, usuwaniu lub aktualizowaniu rekordów. Do typowych przyczyn należy częsta rotacja danych, masowe usuwanie rekordów, dopisywanie informacji w sposób nieuporządkowany oraz aktualizowanie wartości znajdujących się w kluczach indeksu. Znaczenie może mieć także nieprawidłowo dobrana kolejność kolumn w indeksie. Sama przebudowa nie naprawi sytuacji, w której zapytanie nie korzysta z właściwego indeksu, ma nieefektywny warunek albo pobiera znacznie więcej danych, niż jest potrzebne. Przed rozpoczęciem działania warto wykonać pomiary porównawcze. Należy sprawdzić czas wykonywania zapytania, plan wykonania, obciążenie procesora, zużycie pamięci, aktywność pamięci masowej oraz ewentualne blokady. Bez takich danych łatwo przypisać winę fragmentacji problemowi, który w rzeczywistości wynika z nieaktualnych statystyk, zmienionych parametrów zapytania, rozrostu tabeli albo ograniczeń aplikacji. Praktyczne wskazówki przed przebudową indeksuPrzebudowa powinna być zaplanowana, a nie uruchamiana przypadkowo po pojedynczym spowolnieniu. Najpierw należy ustalić, który indeks rzeczywiście powoduje problem i czy jego struktura jest używana przez najważniejsze zapytania. Następnie trzeba sprawdzić dostępne miejsce, przewidywany czas operacji oraz możliwość przywrócenia wcześniejszego stanu. W środowisku zawierającym dane użytkowników zalecane jest wykonanie aktualnej kopii zapasowej i potwierdzenie, że można ją odtworzyć. Ważne jest dobranie momentu wykonywania operacji. Przebudowa może zwiększać liczbę odczytów i zapisów, a w niektórych konfiguracjach powodować blokowanie dostępu do tabeli lub ograniczenie równoległej pracy. Po zakończeniu należy sprawdzić poprawność zapytań, czas odpowiedzi aplikacji oraz zachowanie systemu przy typowym obciążeniu. Przydatne jest także porównanie parametrów przed operacją i po niej, aby odróżnić trwałą poprawę od krótkotrwałego efektu. Nie powinno się ustalać harmonogramu wyłącznie na podstawie fragmentacji. Lepsze rezultaty daje połączenie kilku informacji: częstotliwości zmian, wielkości indeksu, znaczenia obsługiwanych zapytań, dostępnych zasobów i obserwowanego czasu odpowiedzi. Dla części indeksów korzystniejsze może być odświeżenie statystyk, zmiana konstrukcji zapytania, usunięcie nieużywanej struktury albo dodanie lepiej dopasowanego indeksu. Każdą zmianę należy poprzedzić oceną ryzyka i zakończyć kontrolą wyników. Kiedy zgłosić przebudowę indeksu do serwisuDo serwisu warto zgłosić problem, gdy spowolnienie powtarza się mimo ponownego uruchomienia aplikacji, dotyczy wielu użytkowników albo pojawiło się po dużej zmianie ilości danych. Wskazaniem jest również sytuacja, w której brak jest pewności, czy źródłem problemu jest indeks, zapytanie, pamięć masowa, konfiguracja systemu lub uszkodzenie sprzętu. Samodzielne uruchamianie intensywnych operacji bez kopii zapasowej może utrudnić ustalenie przyczyny i zwiększyć ryzyko przerwy w pracy. Warszawskie Pogotowie Komputerowe 24/7 może pomóc w uporządkowaniu diagnostyki, sprawdzeniu objawów oraz dobraniu dalszego postępowania dla komputera wykorzystywanego do pracy z bazą danych. Przed przekazaniem sprzętu warto przygotować opis problemu, przykładowe godziny występowania spowolnień, informacje o ostatnich zmianach oraz dane dotyczące wykonywanych kopii zapasowych. Takie informacje ułatwiają rozróżnienie fragmentacji indeksu od innych przyczyn obniżonej wydajności i pozwalają ograniczyć działania do tych, które są rzeczywiście potrzebne. |