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

Wydajność indeksu

Termin Definicja
Wydajność indeksu

Wydajność indeksu zależy od jego selektywności, fragmentacji i zgodności z rzeczywistymi wzorcami zapytań.

Selektywność indeksu a liczba odczytywanych rekordów

Wydajność indeksu zależy przede wszystkim od tego, jak skutecznie pozwala ograniczyć zbiór rekordów spełniających warunek zapytania. Selektywność opisuje udział wartości unikatowych lub rzadko występujących w całej kolumnie. Indeks na kolumnie zawierającej identyfikator użytkownika, numer seryjny albo unikatowy adres poczty elektronicznej zwykle szybciej zawęża wynik niż indeks na kolumnie, w której występują tylko dwie wartości, na przykład pole typu „tak/nie”. Przy małej selektywności silnik bazy danych może uznać, że odczyt indeksu, a następnie wielu rekordów z tabeli będzie droższy niż sekwencyjne przeskanowanie całej tabeli.

Selektywność nie jest jednak jedynym kryterium oceny. Znaczenie ma także liczba rekordów w tabeli, rozmiar zwracanej projekcji, koszt dostępu do danych oraz warunki zapytania. Indeks może być przydatny dla kolumny o umiarkowanej selektywności, jeśli zapytanie zwraca niewielki zakres wyników albo łączy ją z innym warunkiem. Z kolei nawet bardzo selektywny indeks nie poprawi zapytania, jeżeli filtr obejmuje funkcję przekształcającą wartość kolumny, niezgodny typ danych powoduje konwersję albo warunek dotyczy większości wierszy.

Fragmentacja i układ stron danych

Indeks jest przechowywany w strukturach stron, które zawierają uporządkowane klucze oraz odwołania do rekordów lub kolejnych poziomów struktury indeksowej. W typowym indeksie B-drzewa wyszukiwanie zaczyna się od strony korzenia, przechodzi przez strony pośrednie i kończy na stronie liści zawierającej klucze. Gdy wpisy są często dodawane, usuwane lub zmieniane, logiczna kolejność kluczy może przestać odpowiadać fizycznemu układowi stron. Przy skanowaniu zakresu zwiększa to liczbę operacji wejścia-wyjścia i może pogarszać wykorzystanie pamięci podręcznej.

Fragmentacja nie oznacza automatycznie konieczności przebudowy każdego indeksu. Jej wpływ zależy od rodzaju obciążenia. Zapytanie wyszukujące pojedynczy klucz może nadal wykonywać niewiele odczytów, natomiast skanowanie dużego zakresu może odczuć nieciągły układ stron wyraźniej. Dodatkowe znaczenie ma wolne miejsce pozostawione na stronach. Zbyt mała ilość wolnego miejsca sprzyja podziałom stron podczas kolejnych operacji zapisu, a zbyt duża może powiększyć indeks i zwiększyć liczbę stron do odczytania. Ocena powinna więc uwzględniać rzeczywiste czasy zapytań, rozmiar indeksu oraz częstotliwość zmian danych.

Indeks dopasowany do wzorca zapytań

Indeks powinien odpowiadać warunkom występującym w używanych zapytaniach, a nie tylko strukturze tabeli. Jeżeli aplikacja często filtruje dane po dwóch kolumnach jednocześnie, indeks złożony może ograniczyć liczbę odczytów skuteczniej niż dwa niezależne indeksy. Kolejność kolumn w indeksie złożonym ma znaczenie, ponieważ pierwsze kolumny wyznaczają sposób wyszukiwania oraz możliwość wykorzystania prefiksu indeksu. Indeks obejmujący najpierw województwo, a następnie miasto może być użyteczny dla warunku dotyczącego województwa i miasta, ale niekoniecznie dla zapytania filtrującego wyłącznie po mieście.

Wydajność może poprawić także indeks pokrywający, czyli taki, który poza kolumnami używanymi do filtrowania zawiera dane potrzebne do zwrócenia wyniku. Wtedy silnik może odczytać wymagane wartości bez dodatkowego pobierania rekordów z głównej tabeli. Każdy dodatkowy indeks ma jednak koszt: zajmuje miejsce, musi być aktualizowany przy wstawianiu, usuwaniu i modyfikacji danych oraz może wydłużać operacje zapisu. Nie należy więc indeksować każdej kolumny na zapas. Przed zmianą warto sprawdzić plan wykonania konkretnego zapytania i porównać liczbę odczytów oraz czas przed i po zmianie.

Sprawdzanie wydajności indeksu w praktyce serwisowej

Ocena indeksu zaczyna się od ustalenia, jakie zapytanie działa wolno i czy problem występuje stale, czy tylko przy określonym rozmiarze danych. Należy rozróżnić czas oczekiwania na dysk, obciążenie procesora, blokowanie przez inne operacje oraz samo wyszukiwanie rekordów. Warto porównać zapytanie z użyciem indeksu i bez niego, sprawdzić, czy warunek pozwala na wyszukiwanie po kluczu, oraz zweryfikować, czy statystyki opisujące rozkład wartości są aktualne. Nieprawidłowe lub nieaktualne statystyki mogą spowodować wybór planu, który dla przewidywanej liczby wyników jest niekorzystny.

W komputerze użytkownika problemy z wydajnością mogą być odczuwane jako długie otwieranie programu, opóźnione filtrowanie listy albo chwilowe zawieszanie podczas zapisu. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a w ramach diagnostyki można sprawdzić stan nośnika, ilość dostępnej pamięci, obciążenie procesora oraz działanie aplikacji korzystającej z lokalnej bazy danych. Sama wymiana dysku lub zwiększenie pamięci nie naprawia nieprawidłowego indeksu, ale może ujawnić, czy wąskim gardłem jest sprzęt, konfiguracja programu, operacje wejścia-wyjścia czy sposób wykonywania zapytań. Wynik rzetelnej diagnozy powinien wskazywać konkretny mechanizm opóźnienia oraz zmianę, którą można później zmierzyć.

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