Niedawno wprowadzono do dostrajania bazy danych. Mam kilka pomysłów na temat SQL Server i postanowiłem stworzyć indeks.TWORZENIE INDEKSU SQL Server 2008
Zaproszony to http://sqlserverplanet.com/ddl/create-index
Ale ja nie rozumiem, jak inne rodzaje Główna jak INCLUDE
, WITH
opcje pomoże. Próbowałem google, ale nie udało mi się zobaczyć prosty opis, kiedy z nich korzystać.
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
INCLUDE (President,YearsInOffice,RatingPoints)
WHERE ElectoralVotes IS NOT NULL
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH (DATA_COMPRESSION = ROW)
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH (DATA_COMPRESSION = PAGE)
W jakim scenariuszu powinienem użyć powyższych? Czy zwiększą wydajność?
Czy możesz dodać przykładowe zapytanie tutaj. Z łatwością pomoże mi to przemyśleć i zrozumieć :) – Billa
Wygląda dobrze. Musimy więc dodać indeks do wszystkich kolumn w instrukcji SELECT, aby uzyskać dobrą wydajność? aby uniknąć skanowania tabeli. – Billa
Nie, nie trzeba dodawać wszystkich kolumn do indeksu, aby uniknąć skanowania tabeli. Aby uniknąć skanowania tabeli, musisz mieć indeksy na kolumnach, których używasz w klauzuli where. Wzrost wydajności, jaki zobaczysz, polega na tym, że wszystkie kolumny w indeksie są stosunkowo niewielkie, ponieważ indeks zawiera wskaźniki do wierszy. Duży zysk ma indeksy na kolumnach filtrów. – BlackICE