Wytyczne projektowania indeks klastrowany
Stosowanie indeksów klastrowanych sortowanie i przechowywać wiersze danych w tabela na podstawie ich wartości klucz.Może istnieć tylko jeden indeks klastrowany tabela, ponieważ wiersze danych samych można sortować tylko w jedno zamówienie.Aby uzyskać więcej informacji dotyczących architektury indeks klastrowany zobacz Struktury indeksu klastrowanego
Z kilkoma wyjątkami każda tabela powinna mieć indeks klastrowany zdefiniowane dla kolumna lub kolumn, które oferują następujące:
Może być używane do często używanych kwerend.
Zapewniają wysoki stopień unikatowości.
Ostrzeżenie
Indeks unikatowy dla kolumna lub kolumn, jest tworzona automatycznie podczas tworzenia ograniczenia na klucz podstawowy.Domyślnie ten indeks jest klastrowany; można jednak określić indeks nieklastrowany podczas tworzenia ograniczenia.
Mogą być używane w kwerendach zakres.
Jeżeli indeks klastrowany nie jest tworzony z właściwość UNIQUE Aparat baz danych automatycznie dodaje 4-bajtowy uniqueifier kolumna do tabela.Jeśli jest wymagane, Aparat baz danych automatycznie dodaje uniqueifier wartość do wiersza, aby każdy klucz unikatowy.To kolumna i jego wartości są używane wewnętrznie i nie może być widoczne lub dostępne dla użytkowników.
Uwagi dotyczące kwerendy
Przed utworzeniem indeksów klastrowanych zrozumieć, jak dostępne dane.Należy rozważyć użycie indeks klastrowany dla kwerend, które należy wykonać następujące czynności:
Zwraca zakres wartości za pomocą operatorów, takich jak BETWEEN, >, >=, <, i <=.
Po wierszu z pierwszej wartości zostanie znaleziony przy użyciu indeks klastrowany, wiersze z kolejnych wartości indeksowane są gwarantowane fizycznie przylegać.Na przykład, jeśli kwerenda pobiera rekordy z zakres zamówienia sprzedaży numery, indeks klastrowany kolumna SalesOrderNumber szybko zlokalizuj wiersz zawierający początkowy numer zamówienia sprzedaży, a następnie pobrać wszystkie kolejne wiersze w tabela, aż do osiągnięcia ostatni numer zamówienia sprzedaży.
Zwrotu dużych zestawów wyników.
Za pomocą klauzul sprzężenia; zazwyczaj są to kolumny klucz obcy.
Użyj ORDER BY lub klauzul Grupuj według.
Indeks na określone w klauzula ORDER BY lub Grupuj według kolumn może usunąć potrzebę Aparat baz danych do sortowania danych, ponieważ już sortowane są wiersze.Zwiększa to wydajność kwerendy.
Uwagi dotyczące kolumny
Ogólnie należy zdefiniować klucz indeks klastrowany w jak najmniejszej liczbie kolumn jak to możliwe.Należy rozważyć kolumny zawierające jedną lub więcej z następujących atrybutów:
Unikatowe lub zawierają wiele wartooci distinct
Identyfikator pracownika identyfikuje unikatowo pracowników.Indeks klastrowany lub ograniczenie klucza podstawowego IDPracownika kolumna poprawiające wydajność kwerend wyszukiwania informacji o pracownikach, na podstawie numeru Identyfikatora pracownika.Alternatywnie można utworzyć indeks klastrowany w na nazwisko, Imię, MiddleName ponieważ rekordy pracowników często są grupowane i kwerendy w ten sposób i kombinacji tych kolumn będzie nadal zapewniają wysoki stopień różnicy.
Są dostępne sekwencyjnie
Na przykład identyfikator produktu unikatowo identyfikuje produktów w Production.Product tabela w AdventureWorks2008R2 bazy danych.Kwerendy, w których kolejne wyszukiwanie jest określony, takich jak WHERE ProductID BETWEEN 980 and 999, które korzystałyby z indeks klastrowany na IDProduktu.Wynika to wiersze byłyby przechowywane posortowane na klucz kolumna.
Definiowane jako tożsamość, ponieważ kolumna zapewniona jest unikatowe w tabela.
Używany często, aby posortować dane pobierane z tabela.
Może być dobrze klastra, który jest fizycznie sortować, tabela na tej kolumna, aby zapisać koszt operacji sortowania co czas kwerenda kolumna.
Indeksy klastrowane nie są dobrym rozwiązaniem dla następujących atrybutów:
Kolumny, które są poddawane częstych zmian
Powoduje to w całych wierszy do przenoszenia, ponieważ Aparat baz danych musi przechowywać wartości danych wiersza w fizycznej kolejności.Jest ważną kwestią w dużej liczby transakcji przetwarzania systemów, w których dane są zazwyczaj lotnych.
Klucze szeroki
Szeroki klucze są złożony z kilku kolumn lub kilka kolumn duży rozmiar.Wartości klucz z indeks klastrowany są używane przez wszystkie indeksy nieklastrowany jako klucze wyszukiwania.Wszelkie zbudowania indeksów zdefiniowane w tej samej tabela będzie znacznie większy, ponieważ zawierają wpisy indeks nieklastrowany klastrowanie klucz, a także kolumny klucz zdefiniowanego dla tego indeks nieklastrowany.
Opcje indeksu
Istnieje kilka opcji indeksu, które można określić podczas tworzenia indeks klastrowany.Ponieważ indeksy klastrowane są zwykle bardzo duże, należy nadać szczególną uwagę do następujących opcji:
SORT_IN_TEMPDB
DROP_EXISTING
FILLFACTOR
ONLINE
Aby uzyskać więcej informacji, zobacz Ustawianie opcji indeksu.