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

Widoczne i ukryte indeksy

Termin Definicja
Widoczne i ukryte indeksy

Widoczne indeksy są uwzględniane przez optymalizator, ukryte pozostają obecne, lecz pomijane przy wyborze planu.

Rola indeksu w przygotowaniu planu wykonania

Indeks bazy danych jest dodatkową strukturą opisującą wartości wybranych kolumn lub wyrażeń, dzięki której silnik może szybciej wyszukiwać wiersze, porządkować wyniki albo sprawdzać istnienie określonych wartości. Podczas kompilowania zapytania optymalizator porównuje możliwe plany wykonania. Analizuje między innymi warunki w klauzuli WHERE, połączenia tabel, sortowanie, grupowanie, szacowaną liczbę pasujących wierszy oraz koszt odczytu danych. Widoczny indeks jest jednym z obiektów, które może uwzględnić w tej analizie.

Użycie indeksu nie jest automatycznie korzystniejsze od odczytu całej tabeli. Jeżeli zapytanie zwraca dużą część danych, przejście po indeksie, a następnie pobieranie wielu wierszy z tabeli może kosztować więcej niż sekwencyjny odczyt całej struktury. Optymalizator może też odrzucić indeks, gdy statystyki wskazują na małą selektywność kolumny, nieaktualny rozkład wartości albo niekorzystne położenie danych na nośniku. Widoczność oznacza więc dostępność indeksu dla procesu wyboru planu, a nie gwarancję jego wykorzystania.

Indeks ukryty a fizyczna obecność struktury

Indeks ukryty pozostaje zapisany w bazie i zwykle nadal musi być utrzymywany podczas dodawania, zmiany lub usuwania wierszy. Nie jest zatem tym samym co indeks usunięty. Jego dane mogą zajmować miejsce na dysku, a operacje modyfikujące tabelę mogą ponosić koszt aktualizacji struktury. Różnica dotyczy przede wszystkim udziału indeksu w optymalizacji nowych zapytań. W zależności od konkretnego silnika określenie „ukryty” może oznaczać indeks niewidoczny dla optymalizatora, wyłączony albo pomijany z innego, ściśle zdefiniowanego powodu.

Takie rozdzielenie pozwala sprawdzić wpływ indeksu bez natychmiastowego usuwania go z bazy. Jeżeli po ukryciu indeksu plan zapytania się zmieni, czas wykonania wzrośnie albo pojawią się dodatkowe odczyty, jest to sygnał, że struktura mogła mieć znaczenie dla danego obciążenia. Jeżeli wynik pozostaje taki sam, można uzyskać argument do dalszego porządkowania indeksów. Sam eksperyment nie powinien jednak zastępować pomiaru na reprezentatywnych danych, ponieważ plan może zależeć od parametrów zapytania, aktualnych statystyk, pamięci podręcznej i równoległości wykonania.

Różnice między ukryciem, wyłączeniem i usunięciem

Widoczność indeksu jest właściwością zależną od używanego systemu zarządzania bazą danych. Nie istnieje jedna uniwersalna komenda ani identyczny model działania dla wszystkich silników. W niektórych produktach można ustawić indeks jako niewidoczny dla optymalizatora, a następnie przywrócić jego widoczność. W innych dostępne jest wyłączenie indeksu, które może dodatkowo wpływać na możliwość utrzymywania struktury lub na operacje modyfikujące dane. Jeszcze inną operacją jest usunięcie indeksu, po którym obiekt przestaje istnieć i nie może być używany ani aktualizowany.

Przed zmianą stanu indeksu trzeba sprawdzić dokumentację właściwego silnika oraz plan wykonania zapytania przed i po zmianie. Należy zweryfikować, czy indeks jest unikalny, czy wspiera ograniczenie integralności, czy jest częścią indeksu złożonego oraz czy inne obiekty nie zależą od jego obecności. Warto również obserwować czas wykonania, liczbę odczytów logicznych i fizycznych, blokady oraz obciążenie procesora. Szczególnej ostrożności wymagają indeksy związane z wymuszaniem unikalności, ponieważ ich funkcja może wykraczać poza samo przyspieszanie zapytań.

Znaczenie indeksów przy diagnozie komputera

Problemy z indeksami zwykle ujawniają się pośrednio: aplikacja długo otwiera listę rekordów, wyszukiwanie reaguje z opóźnieniem albo obciążenie procesora rośnie mimo niewielkiej liczby użytkowników. Sama obecność indeksu nie potwierdza jednak jego poprawności. Przyczyną może być nieaktualna statystyka, zapytanie niekorzystnie zapisane względem struktury indeksu, nadmiar indeksów zwiększających koszt zapisu albo ograniczenia nośnika danych. Diagnostyka powinna obejmować logi aplikacji, plan wykonania, parametry zapytania, stan pamięci masowej oraz zachowanie systemu podczas rzeczywistego obciążenia.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów. W przypadku problemów z aplikacją bazodanową zakres czynności sprzętowych może obejmować sprawdzenie nośnika, pamięci operacyjnej, temperatur, stabilności systemu oraz konfiguracji komputera, natomiast ocenę planów zapytań i zmian widoczności indeksów należy przeprowadzać w dokumentacji oraz narzędziach właściwych dla używanego silnika bazy danych.

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