Oracle Utwórz indeks

Oracle Utworz Indeks



W bazach danych Oracle indeks odnosi się do struktury danych, która zwiększa szybkość operacji pobierania danych w tabeli bazy danych. Może to jednak wiązać się z dodatkowymi operacjami zapisu i przestrzenią dyskową w bazie danych.

Przykładem zastosowania indeksu bazy danych jest system zarządzania relacjami z klientami.







W takim systemie możemy mieć tabelę bazy danych, w której przechowywane są informacje o klientach. Może to obejmować imię i nazwisko, adres, metody płatności, dane kontaktowe itp.



Jeśli tabela zawiera wiele rekordów, być może miliony, wyszukanie w bazie danych konkretnych informacji o klientach może zająć dużo czasu i zasobów. Jest to zjawisko negatywne, szczególnie w bazach danych, w których wydajność jest krytyczna.



Aby to obejść, możemy użyć indeksu bazy danych.





Na przykład możemy utworzyć indeks w kolumnie nazwy klienta, który pozwoliłby systemowi bazy danych szybko znaleźć i pobrać informacje o konkretnym kliencie za pomocą nazwy. Dlatego zamiast przeglądać wszystkie wiersze i kolumny w tabeli, silnik bazy danych używa indeksu tylko do wyszukiwania informacji o kliencie.

W tym samouczku dowiesz się, jak używać polecenia CREATE INDEX w bazie danych Oracle, aby zainicjować nowy indeks.



Oracle Create Index Statement

Poniżej przedstawiono składnię instrukcji CREATE INDEX w bazach danych Oracle:

UTWÓRZ INDEKS nazwa_indeksu
ON nazwa_tabeli (kolumna1, kolumna2, ...);

Powyższa składnia tworzy indeks o nazwie nazwa_indeksu w tabeli o nazwie nazwa_tabeli przy użyciu określonych kolumn (kolumna1, kolumna2 itd.) jako klucza indeksu.

W Oracle klucz podstawowy to kolumna lub zestaw kolumn, który jednoznacznie identyfikuje każdy wiersz w tabeli. Domyślnie Oracle automatycznie tworzy unikatowy indeks w kolumnach klucza podstawowego tabeli, aby wymusić ograniczenie unikalności i poprawić wydajność wyszukiwania klucza podstawowego.

Jednak w niektórych przypadkach może być konieczne ręczne utworzenie nowego indeksu dla określonej tabeli.

Przyjrzyjmy się kilku przykładom, jak możemy to osiągnąć.

Przykład tworzenia indeksu Oracle

Załóżmy, że mamy tabelę zawierającą informacje o pracownikach, jak pokazano na poniższym wyjściu:

wybierz imię, nazwisko, wynagrodzenie, datę zatrudnienia z PRACOWNICY;

Oracle Utwórz indeks dla pojedynczej kolumny

Załóżmy, że chcemy utworzyć indeks przy użyciu kolumny imię. Możemy uruchomić zapytanie, jak pokazano:

utwórz indeks wyszukiwania imienia na EMPLOYEES(FIRST_NAME);

Ta instrukcja CREATE INDEX tworzy indeks o nazwie wyszukiwanie_imienia w tabeli EMPLOYEES, używając kolumny FIRST_NAME jako klucza indeksu. Indeks ten może służyć do poprawy wydajności zapytań wyszukujących pracowników według ich imion.

Po utworzeniu indeksu możemy go użyć do wyszukania określonego pracownika, jak pokazano:

WYBIERZ imię, nazwisko, wynagrodzenie, data_zatrudnienia
OD pracowników
WHERE imię = 'William';

Wynik:

Bez indeksu wyszukiwania imienia system bazy danych musiałby przeskanować całą tabelę PRACOWNICY, aby znaleźć wszystkie wiersze, w których kolumna FIRST_NAME jest równa „William”. Jednak po wprowadzeniu indeksu system bazy danych może szybko wyszukać wiersze w index używając wartości „John” jako klucza, a następnie pobierz żądane wiersze z tabeli, co będzie znacznie szybsze.

Kroki zastosowane podczas tworzenia zapytania można wyświetlić za pomocą polecenia wyjaśniania planu, jak pokazano:

wyjaśnij plan dla SELECT imię, nazwisko, wynagrodzenie, data_zatrudnienia
OD pracowników
WHERE imię = 'William';

Wynikowy plan zapytań:

Przykład 2 — Oracle Create Index z wieloma kolumnami

Podobnie możemy stworzyć indeks składający się z więcej niż jednej kolumny w danej tabeli. Załóżmy na przykład, że chcemy utworzyć indeks składający się z kolumny imię i nazwisko.

Możemy użyć kodu, jak pokazano:

utwórz indeks multi_lookup na PRACOWNIKACH(IMIĘ, NAZWISKO);

Ta instrukcja CREATE INDEX tworzy indeks o nazwie multi_lookup w tabeli EMPLOYEES, używając kolumn FIRST_NAME i LAST_NAME jako klucza indeksu.

Po utworzeniu możemy użyć tego indeksu, jak pokazano w przykładowym zapytaniu, jak pokazano:

WYBIERZ imię, nazwisko, wynagrodzenie, data_zatrudnienia
OD pracowników
WHERE imię = 'William' AND nazwisko_nazwisko = 'Kowalski';

Wynikowa wartość:

I tam masz metodę przyspieszenia zapytań do bazy danych za pomocą indeksów w celu ograniczenia zakresu wyszukiwania.

Wniosek

Instrukcja CREATE INDEX w Oracle pozwala nam utworzyć indeks w tabeli, aby poprawić wydajność operacji pobierania danych. Jednak chociaż indeksy mogą poprawić wydajność zapytań, wiążą się również z karami za miejsce w pamięci masowej, co prowadzi do zmniejszenia szybkości operacji zapisu, dlatego używaj ich tylko wtedy, gdy jest to konieczne.