| Termin | Definicja |
|---|---|
| Fragmentacja indeksu | Fragmentacja indeksu to zjawisko nieciągłości fizycznego rozmieszczenia danych indeksu, wymagające okresowej reorganizacji. Na czym polega fragmentacja indeksuFragmentacja indeksu oznacza niekorzystne rozproszenie stron, czyli bloków przechowujących strukturę indeksu na nośniku danych. Indeks porządkuje wartości wybranej kolumny lub zestawu kolumn, aby silnik bazy danych mógł szybciej odnajdywać rekordy bez odczytywania całej tabeli. W typowym indeksie drzewiastym strony są powiązane logicznie, natomiast ich fizyczne położenie może z czasem przestać odpowiadać kolejności logicznej. W efekcie kolejne strony indeksu mogą być zapisane w różnych miejscach pliku, a ich odczyt wymaga większej liczby operacji wejścia i wyjścia. Zjawisko nie jest zwykle pojedynczym błędem ani uszkodzeniem danych. Powstaje podczas normalnej pracy bazy, szczególnie gdy do tabeli są dodawane rekordy, usuwane istniejące wiersze albo zmieniane są wartości kolumn objętych indeksem. Znaczenie fragmentacji zależy od rodzaju indeksu, sposobu wykonywania zapytań, wielkości tabeli, szybkości nośnika oraz tego, czy dane są odczytywane sekwencyjnie, czy losowo. Sam fakt wystąpienia fragmentacji nie oznacza więc automatycznie, że konieczna jest natychmiastowa przebudowa indeksu. Page split i zmiany kolejności stronJedną z przyczyn fragmentacji jest podział strony, określany jako page split. Jeżeli nowy rekord powinien zostać umieszczony pomiędzy wartościami znajdującymi się już na zapełnionej stronie indeksu, silnik może utworzyć dodatkową stronę i rozdzielić między nią część wpisów. Nowa strona nie zawsze może zostać zapisana bezpośrednio za stroną poprzednią, dlatego logiczny porządek indeksu może różnić się od jego fizycznego rozmieszczenia. Podobny efekt może wystąpić po zmianie wartości klucza indeksu, gdy wpis musi zostać przeniesiony w inne miejsce struktury. Fragmentacja może mieć także charakter wewnętrzny. W takim przypadku strony indeksu zawierają wolne miejsce, ponieważ wpisy zostały usunięte lub rozdzielone podczas wcześniejszych operacji. Wolna przestrzeń nie zawsze jest wadą: pozostawienie zapasu może ograniczać liczbę kolejnych podziałów stron przy intensywnym dodawaniu danych. Zbyt duża ilość pustego miejsca zwiększa jednak rozmiar indeksu i może powodować odczytywanie większej liczby stron podczas skanowania. Ocena problemu powinna obejmować zarówno kolejność stron, jak i stopień ich wypełnienia. Wpływ na odczyt danych i plan zapytańNajwiększe znaczenie fragmentacja ma przy operacjach, które odczytują większy, uporządkowany zakres indeksu. Jeżeli strony znajdujące się w logicznej kolejności są fizycznie rozproszone, odczyt sekwencyjny może wymagać częstszego przechodzenia między różnymi obszarami pliku. Na klasycznych dyskach talerzowych taki dostęp może wyraźnie zwiększać czas operacji, ponieważ głowica musi wykonywać więcej ruchów. Na nośnikach półprzewodnikowych opóźnienia są mniejsze, ale fragmentacja nadal może powiększać rozmiar indeksu i liczbę stron koniecznych do odczytania. Nie każdy odczyt reaguje na fragmentację w taki sam sposób. Zapytanie wyszukujące pojedynczą wartość może przejść przez kilka poziomów drzewa indeksu i pobrać niewielką liczbę stron, dlatego wpływ rozproszenia bywa ograniczony. Większe znaczenie może mieć fragmentacja indeksu używanego do sortowania, skanowania zakresu albo obsługi raportów. Trzeba też odróżnić fragmentację od nieaktualnych statystyk, niepasującego indeksu, blokad transakcyjnych i niewłaściwego planu wykonania. Każdy z tych problemów może powodować wolne zapytania, ale wymaga innej metody diagnozy. Ocena i porządkowanie struktury indeksuSprawdzanie fragmentacji powinno polegać na odczytaniu metryk udostępnianych przez konkretny silnik bazy danych. Zwykle analizuje się procent uporządkowania stron, udział wolnego miejsca, liczbę stron oraz rozmiar indeksu. Nie należy stosować jednego uniwersalnego progu dla wszystkich tabel. Mały indeks może nie powodować zauważalnego kosztu nawet przy niekorzystnym układzie stron, natomiast duży indeks używany w częstych skanach może wymagać działania przy mniejszym poziomie rozproszenia. Wynik pomiaru trzeba zestawić z rzeczywistym czasem zapytań i obciążeniem systemu. Silniki baz danych udostępniają zwykle co najmniej dwa sposoby porządkowania indeksu: reorganizację oraz przebudowę. Reorganizacja porządkuje strukturę stopniowo i może być mniej obciążająca, ale nie zawsze usuwa wszystkie skutki fragmentacji. Przebudowa tworzy indeks na nowo, dlatego może skuteczniej zmienić jego układ, lecz wymaga dodatkowych zasobów, miejsca roboczego i odpowiedniego zaplanowania. Szczegóły działania, możliwość pracy online, wpływ na blokady oraz nazwy poleceń są zależne od konkretnego produktu. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, a w przypadku problemów z wydajnością komputera analiza indeksów może być jednym z elementów rozpoznania przyczyny spowolnienia. |