Bazy danych 145
umieszczone zostaną nazwiska studentów z tabeli Studenci oraz dostarczy przesłankę, gdzie należy szukać (na której stronie danych) pełnej informacji o danym studencie. Dodatkowo rekordy w tabeli indeksu zostaną posortowane w kolejności alfabetycznej nazwisk. Poszukiwanie naszego studenta Nowaka będzie teraz przebiegać znacznie szybciej. Działanie i rola indeksów polega głównie na przyspieszeniu wyszukiwania rekordów w bazie danych. Niestety obciążają one dodatkowo system w czasie aktualizacji lub wstawiania danych. SZBD musi bowiem oprócz umieszczenia rekordu w bazie dokonać też wpisu w tabeli indeksu oraz ponownie posortować rekordy tabeli indeksu.
Zalety i wady stosowania indeksów zebrano w tabeli 6.5.
Tabela 6.5 Zalety i wady stosowania indeksów_
Zalety |
Wady |
Przyspieszają dostęp do danych |
Zajmują miejsce na dysku |
Wymuszają unikatowość wierszy |
Zwiększają obciążenie sysetmu |
Niektóre z pól warto jest indeksować, inne natomiast nie powinny być nigdy indeksowane.
Warto indeksować następujące pola:
• klucze podstawowe i obce (często są automatycznie indeksowane),
• pola, po których często następuje wyszukiwanie,
• pola, do których dostęp następuje w ustalonej, uporządkowanej kolejności.
Nie należy indeksować:
• pól, do których rzadko odwołują się zapytania,
• pól, które zawierają tylko kilka wartości unikatowych,
• pól zawierających dane typu image, bit czy obiekt OLE.
Indeksy mogą być zakładane na jednym polu lub na większej liczbie pól jednocześnie.
Dostęp do danych z wykorzystaniem indeksów nie zawsze jest najlepszym rozwiązaniem. Czasem lepiej jest nie korzystać z indeksów, ale bezpośrednio skanować tabelę. SZBD sprawdza, czy dla danej tabeli istnieją indeksy, a następnie optymalizator zapytań analizuje zapytanie i podejmuje decyzję, czy dostęp do danych będzie prowadzony poprzez skanowanie tabeli, czy przy wykorzystaniu indeksu.
Określenie, czy jest indeks
I
Określenie sposobu dostppu * optymalizator kwerendy
Skanowanie tabeli
Rys. 6.6 Dostęp do danych przy korzystaniu z indeksów