Disabling Indexes

Wyłączenie indeksu uniemożliwia użytkownikowi dostęp do indeksu, a dla indeksów klastrowanych do tabela źródłowa danych.Pozostaje definicja indeksu metadane i indeks statystyki są przechowywane na ponownego zbudowania indeksów nie klastrowanych.Wyłączanie fizycznie nieklastrowany indeks lub indeksem klastrowanym dla widoku powoduje usunięcie danych indeksu.Wyłączenie indeksem klastrowanym dla tabela uniemożliwia dostęp do danych; dane nadal pozostaje w tabela, ale jest niedostępna w przypadku operacje DML, dopóki indeks zostanie porzucone lub przebudowany.Aby odbudować i włączyć wyłączone indeks, należy użyć instrukcja ALTER ODBUDOWAĆ indeks lub instrukcja CREATE INDEX WITH DROP_EXISTING.

Jednego lub kilku indeksów może być wyłączone w następujących okolicznościach:

  • The SQL Server Database Engine automatically disables the index during an upgrade of SQL Server.

  • Indeks zostanie ręcznie wyłączone przy użyciu instrukcji ALTER indeks.

Indeks wyłącza uaktualnienie serwera SQL

Podczas uaktualniania do nowej wersji programu lub dodatku usługa pack dla SQL Server, Database Engine automatycznie identyfikuje i wyłącza indeksu, w tym indeksów w widokach, gdy definicja indeksu lub widok zawiera jedną z następujących czynności:

  • Wyrażenie, dla których Database Engine Nie można zagwarantować integralność danych indeksu.

    Załóżmy na przykład, indeks korzysta z funkcji systemu i że funkcja została zmieniona w uaktualnieniu w taki sposób, że zwraca ona teraz różne wyniki.The Database Engine will disable the index during the upgrade because it may contain data that is not valid after the upgrade.

  • Sortowanie, która została zmieniona w ramach uaktualniania w taki sposób, że indeks nie jest już posortowane prawidłowo.

Gdy indeks jest wyłączony w czasie procesu uaktualniania, komunikat ostrzegawczy Wyświetla nazwę indeksu i wszystkie skojarzone ograniczenia nazwy tak, aby można je odbudować, po zakończeniu uaktualniania systemu.Przebudowywanie indeksu i włączanie ograniczenia poprawi dane unieważnionych podczas uaktualniania systemu.

Ograniczenie typu CHECK mogą być wyłączone, gdy definicja zawiera wyrażenie, dla których Database Engine Nie można zagwarantować integralność danych. Aby włączyć ograniczenia, należy użyć instrukcja ALTER tabela CHECK.

Wyłącz indeksu za pomocą ALTER indeks

Indeks w dowolnym momencie można ręcznie wyłączyć przy użyciu instrukcja ALTER DISABLE indeks.

Uwaga

Jeśli tabela znajduje się w publikacja replikacja transakcyjnej, nie można wyłączyć żadnych indeksów, które są skojarzone z kolumny klucz podstawowy.Indeksy te są wymagane przez replikację.Aby wyłączyć indeks, użytkownik musi najpierw usunąć tabela z publikacja.Aby uzyskać więcej informacji zobaczObiekty bazy danych i publikowania danych.

Można wyłączyć indeksu w celu wykonania następujących czynności:

  • Usuwanie dysku błąd We/Wy (błąd 823 lub 824) strona indeksu, a następnie później przebudowywanie indeksu.

  • Tymczasowe usunięcie indeksu w celu rozwiązywania problemów.

  • Odbudowywanie ponownego zbudowania indeksów nie klastrowanych.

    Gdy indeks nieklastrowany nie jest wyłączona, operacja odbudowywania wymaga za mało tymczasowego miejsca na dysku do przechowywania zarówno stare i nowe indeksu.Jednak wyłączając i przebudowa nieklastrowany indeks w oddzielnych transakcji, miejsca na dysku przez wyłączenie indeksu może zostać użyty ponownie przez następne rekonstrukcji lub innej operacji.Zazwyczaj jest to 20 procent rozmiaru indeksu; dodatkowy obszar, nie jest wymagane z wyjątkiem tymczasowego miejsca na dysku do sortowania.

    W przypadku ograniczonej ilości miejsca na dysku może być pomocne dla przed jego przebudowy wyłączyć indeks nieklastrowany.Na przykład mieć procedura przechowywana, które buduje ponownie wszystkie indeksy nieklastrowany w jednej lub kilku tabel.Po wyłączeniu tych wskaźników najpierw w oddzielnych transakcji z operacji przebudowy, mogą znacznie zmniejszyć ilość miejsca wymaganego do przebudowania je na dysku tymczasowym.

Aby wyłączyć indeksu

ALTER INDEX (języka Transact-SQL)

How to: Rebuild an Index (SQL Server Management Studio)