Jaka jest różnica między wyszukiwaniem indeksu klastrowanego (CI) a wyszukiwaniem indeksu klastrowanego (NCI)? Czy jedno działa lepiej od drugiego?
Pytam o to, ponieważ mam tabelę z 50 milionami wierszy i 150 kolumnami. Ma kolumnę o nazwie ID
zdefiniowanej jako indeks klastrowany. Jest na nim jeszcze jeden NCI o tym samym identyfikatorze klucza indeksu i siedmiu include
kolumnach. Wydaje mi się, że indeks NC jest tutaj duplikatem i można go bezpiecznie usunąć.
Chcę więc opinii ekspertów / porad, czy można je bezpiecznie upuścić, czy też powinny pozostać nienaruszone?
sql-server
sql-server-2012
index-tuning
SQLPRODDBA
źródło
źródło
Odpowiedzi:
Indeks nieklastrowany, który ma te same klucze * co indeks klastrowany, może być nadal przydatny, ponieważ indeks nieklastrowany będzie zwykle mniejszy i gęstszy. Pamiętaj, że indeks klastrowy zawiera wszystkie dane w wierszu, więc zwykle jest to najszerszy możliwy (najmniej gęsty) indeks.
* Te same kolumny kluczy, w tej samej kolejności, posortowane w ten sam sposób (asc / desc).
W przypadku wyszukiwania pojedynczego (wyszukiwanie przy użyciu predykatu równości do unikalnego indeksu) główną różnicą jest przypuszczalnie większa szansa, że strona (strony) indeksowe (e) są potrzebne, aby znaleźć ten pojedynczy rekord już w pamięci. Wszystko jest jednakowe, indeks nieklastrowany ze 100 stronami ma większą szansę niż indeks klastrowany przechowywany na 10 000 stron.
Dla każdego innego rodzaju poszukiwania oprócz singletonu będzie również element skanujący. Część skanująca skorzysta również z większej gęstości indeksu nieklastrowanego (więcej wierszy na stronę). Nawet jeśli strony muszą pochodzić z trwałej pamięci, czytanie mniejszej liczby stron jest szybsze.
Powinieneś sprawdzić dokumentację systemu, zapytać osobę, która dodała indeks i / lub poszukać komentarzy do kodu, aby zrozumieć, dlaczego ten indeks istnieje. Należy również dokładnie sprawdzić pełne definicje indeksów , w tym kompresję, i przejrzeć skrypty konserwacji indeksów. Mogą istnieć inne szczególne powody posiadania nieklastrowanego indeksu (np. Zdolność do przebudowy online).
źródło