Omówimy różne kategorie indeksów na serwerze Microsoft SQL. Główne typy indeksów to: indeksy klastrowane, indeksy niezbadane, indeksy BTREE i unikalne indeksy.
Rodzaje indeksów na serwerze Microsoft SQL
Indeks klastrowy
Indeks klastrowy określa rzeczywiste fizyczne układ danych w tabeli. Każda tabela na serwerze SQL może mieć tylko jeden indeks klastrowy, a indeks musi być utworzony na unikalnej kolumnie lub zbiorze kolumn lub zestawu kolumn. Ponieważ indeks skupiony określa fizyczny układ tabeli, jest często używany do tabel, które są często przeszukiwane na podstawie ich klucza podstawowego lub innych unikalnych wartości.
Najpierw utwórzmy tabelę i wstawmy do niej wartości za pomocą następujących poleceń SQL:
Wstaw do klientów (Customer_id, Customer_name, Customer_email, Customer_phone)Spójrzmy na przykład indeksu klastrowego. Aby utworzyć indeks klastrowy w kolumnie „Customer_id”, możemy użyć następującego zapytania SQL:
Utwórz klastrowane indeks IDX_Customers_Customer_Name na klientach (nazwa_ klienta);Tworzy to indeks klastrowy w kolumnie Customer_name, w której dane w tabeli są fizycznie zamawiane na podstawie wartości w kolumnie Customer_name.
Aby pobrać wszystkich klientów, których nazwa zaczyna się od litery „A”, możemy użyć następującego zapytania SQL:
WYBIERAĆ *Wyjście:
Customer_id Customer_name Customer_email Customena_phoneIndeks nie klastrowy
Jest to rodzaj indeksu, który nie wpływa na kolejność fizyczną danych w tabeli. Indeks nie klastrowy wytwarza niezależną strukturę danych, która przechowuje klucz indeksu i wskaźnik do powiązanego wiersza danych w tabeli. Umożliwia to zapytania szybko zlokalizować odpowiednie wiersze danych na podstawie wartości w indeksie. W przeciwieństwie do indeksów klastrowych, tabele na serwerze SQL mogą mieć wiele indeksów nieoklasowych, a indeks można utworzyć na dowolnej kolumnie lub zestawie kolumn w tabeli.
Przykład indeksu nie klastrowanego jest następujący:
Utwórz nieklastyczny indeks IDX_Customer_emailTworzy to indeks nie klastrowy w kolumnie „Customer_email”, w którym dane w tabeli pozostają fizycznie nieuporządkowane, ale indeks przechowuje posortowaną kopię danych w kolumnie „Customer_email”.
Aby pobrać wszystkich klientów, których adres e -mail zawiera „Gmail.Com ”, możemy użyć następującego zapytania SQL:
WYBIERAĆ *Wyjście:
Customer_id Customer_name Customer_email Customena_phoneTutaj żaden klient nie ma wiadomości e -mail zawierającej „Gmail.domena com, więc pole wyjściowe jest puste.
Indeks Btree
Indeks BTREE to sposób na zorganizowanie danych w strukturze, która przypomina drzewo. Każdy węzeł w drzewie zawiera zakres wartości kluczowych, a każdy węzeł liściowy zawiera wskaźnik do odpowiedniego wiersza danych. Indeksy BTREE są powszechnie używane na serwerze SQL, ponieważ pozwalają na wydajne wyszukiwanie i sortowanie dużych ilości danych. Są one szczególnie przydatne do zapytań, które obejmują wyszukiwanie zasięgu lub operacje sortowania. Na przykład: pensje, numery telefonów itp.
Przykład utworzenia indeksu BTREE w kolumnie „Custome_phone” jest następujący:
Utwórz indeks IDX_Customer_PhoneTworzy to indeks B-Tree w kolumnie „Customer_phone”, w której dane w indeksie są przechowywane w strukturze przypominającej drzewo, przy czym każdy węzeł zawiera zakres wartości i wskaźników do innych węzłów.
Teraz chcemy odzyskać wszystkich klientów, których numer telefonu zaczyna się od kodu obszarowego „555” przy użyciu następującego zapytania SQL:
WYBIERAĆ *Wyjście:
Customer_id Customer_name Customer_email Customena_phoneUnikalny indeks
Jest to rodzaj indeksu, który zapewnia, że żadne dwa wiersze w tabeli nie mają tej samej wartości kluczowej. Może to być przydatne do egzekwowania integralności danych i zapobiegania zduplikowaniu rekordów w tabeli.
Przykład utworzenia unikalnego indeksu w kolumnie „Customer_email” jest następujący:
Utwórz indeks IDX_Customer_Email_NewTworzy to unikalny indeks w kolumnie „Customer_email”, w którym indeks egzekwuje ograniczenie, które zapewnia, że żadne dwa wiersze w tabeli nie mogą mieć tej samej wartości w kolumnie „Customer_email”.
Teraz włóż nowego klienta do stołu za pomocą „[email protected] ”e -mail i odzyskaj za pomocą następującego zapytania SQL:
Wstaw do klientów (Customer_id, Customer_name, Customer_email, Customer_phone)Wyjście:
Customer_id Customer_name Customer_email Customena_phoneWniosek
Indeksy odgrywają ważną rolę w optymalizacji wydajności baz danych SQL Server. Zrozumienie różnych rodzajów indeksów może pomóc administratorom bazy danych w wyborze najbardziej odpowiedniego rodzaju indeksu dla ich aplikacji. Dzięki skutecznym tworzeniu i utrzymaniu indeksów firmy mogą upewnić się, że ich bazy danych działają wydajnie, umożliwiając im podejmowanie decyzji opartych na danych i zapewnienie lepszej usługi swoim klientom.