Chociaż istnieje wiele sposobów poprawy wydajności bazy danych, jedna funkcja jest prawie uniwersalna dla każdej bazy danych. Indeksy bazy danych to struktury danych lub obiekty, które są używane do zwiększenia prędkości pobierania danych z tabeli.
W przypadku prawidłowego stosowania indeksy bazy danych mogą zmniejszyć prędkość zapytania o prawie połowę, w zależności od danych docelowych, układu, dostępnych zasobów itp.
W tym samouczku nauczysz się, jak pracować z unikalnymi indeksami w bazach danych Oracle, aby zapobiec dostępności duplikatów w indeksowanej kolumnie.
Oracle unikalny indeks
Możemy użyć unikalnego indeksu, aby upewnić się, że żadne zduplikowane wiersze nie są przechowywane w danej kolumnie. Jeśli kolumna danego indeksu zawiera unikalną regułę, próba dodania dwóch wierszy o podobnej wartości w tej kolumnie spowoduje błąd, który wskazuje na unikalne naruszenie ograniczenia.
W Oracle możemy utworzyć unikalny indeks za pomocą instrukcji Utwórz unikalną indeks, jak pokazano następująco:
Utwórz unikalną nazwę indeksu indeksu na nazwie_bele_name (kolumny);
Kolumny zawarte w indeksie nie zaakceptują żadnych zduplikowanych wierszy.
Przykład unikalnej ilustracji tabeli
Aby zademonstrować, jak tworzyć i używać unikalnego indeksu, weź następującą tabelę:
Wybierz * z próbki_data;
Wyjście:
Utwórz unikalny indeks w kolumnie First_name
Poniższa instrukcja przykładowa pokazuje, jak utworzyć unikalny indeks za pomocą kolumny pierwszej nazwy:
Utwórz unikalną indeks pierwszej nazwy_name_unique na próbki_data (First_name);
Włączając ten indeks, nie możemy wstawić więcej niż jednego wiersza o tym samym imieniu.
Weźmy na przykład następujące instrukcje wstawu:
Włóż do próbki_data (id, pierwsza nazwa_namalna, ip_address, btc_address, credit_card, identyfikator)
Wartości (11, „Wallas”, „169.158.70.77 ', „1CNZ5D1D5SC8SAR6DFSVIHWZTQYX5FG77Q”, „4017955174552”,
„26811D77-0A3A-4397-BC33-F7835F7C7AB9”);
Jeśli uruchomimy instrukcję podaną wstawkę, powinniśmy uzyskać błąd, jak pokazano następująco:
[23000] [1] ORA-00001: Unikalne ograniczenie (HR.First_name_unique) naruszono
Jak widzimy, wstawianie danej wartości narusza unikalne ograniczenie dla kolumny pierwszej nazwy_.
Utwórz unikalny indeks z dwiema kolumnami
Możemy również mieć unikalny indeks składający się z więcej niż jednej kolumny. W poniższym przykładzie tworzymy unikalny indeks przy użyciu kolumn First_name i IO_ADDRESS:
Utwórz unikalne indeks Verify_Columns na próbki_data (First_name, ip_address);
Podobnie, dodanie duplikatów dla kolumny pierwszej nazwy_nazwy lub IP_ADDRESS spowoduje unikalne błędy naruszenia indeksu.
Automatyczne unikalne indeksy
Czy kiedykolwiek zastanawiałeś się, co się stanie, gdy deklarujesz kolumnę tabeli z kluczem podstawowym lub unikalnym ograniczeniem?
Mówiąc prosto, jeśli ustawisz kolumnę jako klucz podstawowy tabeli lub przypiszesz unikalne ograniczenie do danej kolumny, silnik bazy danych automatycznie tworzy unikalny indeks dla tej kolumny.
Zapewnia to, że w tej kolumnie nie jest wstawiana żadna zduplikowana wartość.
Weźmy na przykład następujące stwierdzenie:
Utwórz tabelę próbki_data
(
numer identyfikacyjny,
First_name varchar2 (50),
ip_address varchar2 (20),
btc_address varchar2 (50),
credit_card varchar2 (50),
identyfikator varchar2 (40),
ograniczenie klawisz podstawowy próbki_pk (id)
);
W poprzednim przykładzie tworzymy tabelę i ustawiamy kolumnę ID jako klucz podstawowy. Następnie, aby wyświetlić unikalne ograniczenie powiązane z tą kolumną (automatycznie generowane), możemy uruchomić następujące polecenie:
Wybierz nazwę index_name, index_type, widoczność, status, nazwa_bolita
z All_Indexes gdzie nazwa_pliku = 'próbka_data';
Wyniki:
W takim przypadku możemy zobaczyć unikalny indeks, który jest tworzony przez silnik bazy danych dla kolumny identyfikacyjnej.
Wniosek
W tym przewodniku nauczyłeś się tworzyć i korzystać z unikalnych indeksów w bazie danych Oracle. Nauczyłeś się również, co się dzieje, gdy przypisujesz klucz podstawowy lub unikalne ograniczenie do kolumny tabeli.