Udostępnij za pośrednictwem


Projekt indeksu ogólne wytyczne

Bazy danych doświadczeni administratorzy mogą projektować dobry zestaw indeksy, ale to zadanie jest bardzo skomplikowane, czas-zużywające i podatną nawet dla umiarkowanie złożonych baz danych i obciążenia.Opis właściwości kolumn bazy danych, kwerendy i dane może pomóc projektowania optymalnej indeksy.

Zagadnienia bazy danych

Podczas projektowania indeksu, należy wziąć pod uwagę następujące wytyczne bazy danych:

  • Dużej liczby indeksów tabela wpłynąć na wydajność, INSERT, UPDATE, DELETE i SCALIĆ instrukcji, ponieważ wszystkie indeksy muszą być odpowiednio dostosowane jako dane w tabela zmiany.

    • Unikać over-indexing silnie zaktualizowane tabel i zachować indeksów wąskie, oznacza to, że z jak kilka kolumn, jak to możliwe.

    • Wiele indeksów można użyć, aby poprawić wydajność kwerendy w tabelach zawierających wymagania dotyczące aktualizacji niski, ale dużych ilości danych.Dużej liczby indeksów może pomóc wydajność kwerend, które nie modyfikują dane, takie jak instrukcji SELECT, ponieważ optymalizator kwerendy ma więcej indeksy określić najszybszą metoda dostępu, wybierać spośród.

  • Indeksowanie małe tabele mogą nie być optymalne, ponieważ może potrwać dłużej optymalizator kwerendy na przechodzenie przez indeks, wyszukiwanie danych niż Aby wykonać skanowanie prostą tabela.Dlatego indeksów na małe tabele nigdy nie może być używany, ale nadal muszą być utrzymywane jako dane w tabela zmiany.

  • Indeksy w widokach może zapewnić znaczący wzrost wydajności, gdy widok zawiera agregacji, tabela sprzężeń lub kombinacji agregacji i sprzężeń.Widok nie musi jawnie odwoływać się w kwerendzie dla optymalizator kwerendy go.Aby uzyskać więcej informacji, zobacz Projektowanie widoków indeksów.

  • Użyj Doradca dostrajania aparatu bazy danych do analizowania bazy danych i zaleceń indeksu.Aby uzyskać więcej informacji, zobacz OpisDoradca dostrajania aparatu bazy danych.

Uwagi dotyczące kwerendy

Podczas projektowania indeksu, należy wziąć pod uwagę następujące wskazówki kwerendy:

  • Tworzenie zbudowania indeksów nie klastrowanych według wszystkich kolumn, które są często używane w predykatów i łączyć warunki w kwerendach.

    Ważna informacjaWażne:

    Należy unikać dodawania kolumn niepotrzebne.Dodawanie zbyt wiele kolumn indeksu może niekorzystnie wpłynąć na wydajność konserwacji indeks i miejsca na dysku.

  • Indeksy obejmujące można poprawić wydajność kwerendy, ponieważ wszystkie dane niezbędne do spełnienia wymogów kwerendy istnieje w obrębie samego indeksu.Który jest tylko strony indeksu, a nie stron danych tabela lub indeks klastrowany, są wymagane, aby pobrać żądane dane; Dlatego zmniejszenie ogólnej dysku.Na przykład, kwerenda kolumn i b w tabela, która ma indeks złożony utworzone w kolumnach , b, i c można pobrać określonych danych z samego indeksu.

  • Napisz wstawić lub zmodyfikować tyle wierszy, jak to możliwe w pojedynczej instrukcja, zamiast wielu kwerend do aktualizowania wierszy tej samej kwerendy.Przy użyciu tylko jednej instrukcja, może zostać wykorzystana zoptymalizowanym indeksem konserwacji.

  • Ocena typu kwerendy i używania kolumn w kwerendzie.Na przykład kolumna używana w wpisz dokładny odpowiednik kwerendy byłyby odpowiednie do pełnienia funkcji indeks klastrowany lub nieklastrowany.Aby uzyskać więcej informacji, zobacz Typy kwerend i indeksów.

Uwagi dotyczące kolumny

Podczas projektowania indeksu należy uwzględnić następujące wskazówki kolumna:

  • Zachowaj długość indeks klucz skrót indeksów klastrowanych.Ponadto indeksy klastrowane korzystają z tworzenia unikatowego lub niepustych kolumn.Aby uzyskać więcej informacji, zobacz Wytyczne projektowania indeks klastrowany.

  • Kolumny, które są ntext, text, image, varchar(max), nvarchar(max), i varbinary(max) typów danych nie może być określony jako indeks klucz kolumn.Jednakże varchar(max), nvarchar(max), varbinary(max), i xml typy danych mogą uczestniczyć w indeks nieklastrowany jako indeks nonkey kolumny.Aby uzyskać więcej informacji, zobacz Indeks z uwzględnionych kolumn.

  • xml Typ danych można tylko kolumna klucz tylko w indeksie XML.Aby uzyskać więcej informacji, zobacz Indeksy na kolumnach typu danych XML.

  • Sprawdź unikatowość kolumna.Indeks unikatowy, zamiast nieunikatowy indeks w tej samej kombinacji kolumn zawiera dodatkowe informacje dla optymalizator kwerendy, który sprawia, że indeks jest bardziej użyteczne.Aby uzyskać więcej informacji, zobacz Unikatowy indeks projekt wytycznych.

  • Zbadać dystrybucji danych kolumna.Długo działającą kwerendę jest często spowodowane indeksując kolumna kilka unikatowych wartości, lub wykonywania na takiej kolumna łączyć.Podstawowy problem z danych i kwerendy i zwykle nie można rozpoznać bez określenia tej sytuacji.Na przykład katalogu fizycznego telefonu sortowane alfabetycznie według nazwiska nie będzie przyspieszenia lokalizowanie osoby, jeśli noszą nazwy wszystkich osób w mieście Kowalski lub Jones.Aby uzyskać więcej informacji o dystrybucji danych, zobacz Aby poprawić wydajność kwerendy przy użyciu statystyk.

  • Należy rozważyć użycie indeksów filtrowane na kolumny, które mają dobrze podzbiory, na przykład sparse kolumn, kolumny z przeważnie wartości NULL, kolumny z kategoriami wartości i kolumn o różnych zakresów wartości.Dobrze filtrowane indeksu można poprawić wydajność kwerendy, zmniejszyć koszty eksploatacji indeksu i zmniejszenia kosztów składowania.Aby uzyskać więcej informacji, zobacz Filtrowane wskazówek indeksu.

  • Jeśli indeks będzie zawierać wiele kolumn, należy rozważyć kolejność kolumn.kolumna, która jest używana w klauzula WHERE w równa (=), większe niż (>), mniejsze niż (<), lub BETWEEN warunek wyszukiwania lub uczestniczy w łączyć, należy najpierw umieścić.Dodatkowe kolumny powinny być uporządkowane na podstawie ich poziom odrębność, czyli z najbardziej distinct do najmniej distinct.

    Na przykład, jeżeli indeks jest zdefiniowana jako LastName, FirstName indeks będzie przydatne, gdy kryterium wyszukiwania jest WHERE LastName = 'Smith' lub WHERE LastName = Smith AND FirstName LIKE 'J%'.Jednakże optymalizator kwerendy nie należy używać indeksu kwerendy, która będzie przeszukiwana tylko na FirstName (WHERE FirstName = 'Jane').

  • Należy rozważyć indeksowanie kolumny obliczane.Aby uzyskać więcej informacji, zobacz Tworzenie indeksów kolumny obliczanej.

Właściwości indeksu

Po ustaleniu, że indeks jest odpowiednia dla kwerendy, można wybrać typ indeksu, który najlepiej pasuje do danej sytuacji.Następujące cechy indeksu:

  • Klastrowany lub nieklastrowany

  • Unikatowy lub nieunikatowy

  • Pojedyncza kolumna i multicolumn

  • Rosnący lub malejący porządek kolumn w indeksie

  • Tabela pełnej i filtrowane zbudowania indeksów

Można również dostosować charakterystykę magazynowania początkowego indeksu i zoptymalizować jego wydajność lub utrzymania przez ustawienie opcji takich jak FILLFACTOR.Aby uzyskać więcej informacji, zobacz Ustawianie opcji indeksu.Ponadto można określić lokalizacja przechowywania indeksu za pomocą systemów aplikacjami lub partycji w celu zoptymalizowania wydajności.Aby uzyskać więcej informacji, zobacz Obrotu indeksy aplikacjami.