Indeks:
- Opcjonalna struktura
- Może, ale nie musi przyśpieszyć działanie bazy danych
- Osobny obiekt - nie ma wpływu na tabelę np. po usunięciu
- Szybka ścieżka dostępu do pojedynczego wiersza danych
- Wpłynąc może jedynie na szybkość
- Wskazuje bezpośrednio na lokalizację wierszy posiadają zindeksowaną wartość
- Jeden ze sposób na zmniejszenie ilości operacji I/O
- W przypadku braku indeksów baza danych musi wykonać pelne skanowanie by znaleźc żądana wartość
- Baza danych automatycznie utrzymuje indeksy po ich utworzeniu
- Wady
- Ręczne tworzenie indeksu wymaga dogłębnej znajomości modelu danych i ich dystrybucji
- Obecnośc indeksów powinna być na bieżąco analizowana, gdyż indeks może w jednej sytuacji przyśpieszyć zapytania, a w innej je zwolnić
- Indeks zajmuje miejsce na dysku
- W przypadku zastosowania DML (insert, update, delete) na indeksowanych danych baza danych musi aktualizowac indeks co wpływa na wydajność
- Od wersji Oracle 19c zaimplementowane jest automatyczne zarządzanie indeksami
Indeksy stosujemy w nastepującycych sytuacjach:
- Wybrane kolumny sa często odpytywane i zwracają niewielki procent całkowitej liczby wierszy
- Ograniczenie integralności referencyjnej na indeksowanych kolumnach (indeks pozwala na uniknięcie blokady tabeli, która nastąpiłaby w przypadku aktualizacji np. klucza podstawowego tabeli nadrzędnej)
Klucz - Zestaw kolumn lub wyrazeń, na którym można zbudowac indeks. Klucz główny jest zawsze indeksem, klucz obcy nie. Indeks jest obiektem przechowywanym w bazie, z kolei klucz jest pojęciem logicznym.
Rodzaje indeksów:
- Kompozytowy (połączony)
- Złożony z wielu kolumn
- Kolumny sa umieszczone w kolejności, która ma sens dla zapytań pobierających dane
- Najczęściej używane kolumny powinny być na pierwszym miejscu w indeksie
Przykład: Odpytujemy najczęściej kolumny imie, nazwisko i wiek z tabeli dane_osobowe. Wtedy indeks będzie wyglądał następująco:
CREATE INDEX dane_osobowe_ind ON dane_osobowe (imie, nazwisko, wiek)
- Unikalne i nieunikalne
- Unikalne indeksy gwarantują, że żadne dwa diwersze tabeli nie maja duplikatów w kolumnach klucza
- Nieunikalne dopuszczają wartości nieunikalne
Typy indeksów:
- Balanse tree index
- Bitmap index
Atrybuty
- Kompresja
- Odwrócony indeks
- Sortowanie
Usuwanie indeksu
drop index job_dept