DBCC DBREINDEX (Transact-SQL)
Przebudowuje jednego lub kilku indeksów w tabela w określonej bazy danych.
Ważne: |
---|
Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.Użycie Zmianę INDEKSU zamiast. |
Składnia
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Argumenty
table_name
To nazwa tabela zawierającej określony indeks lub indeksy odbudować.Nazwy tabel muszą spełniać zasady dla identyfikatory.index_name
Jest to nazwa odbudowanie indeksu.Nazwy indeksów muszą być zgodne z zasadami dla identyfikatorów.Jeśli index_name jest określony, table_name musi być określony.Jeśli index_name nie została określona lub jest " ", odbudowa wszystkie indeksy tabela .fillfactor
Jest procent miejsca na każdym strona indeksu do przechowywania danych podczas tworzenia indeksu lub przebudowanych.fillfactorzastępuje współczynnik wypełnienia podczas tworzenia indeksu, stając się nowego domyślnego dla indeksu i innych zbudowania indeksów przebudowany, ponieważ będzie przebudowywany indeks klastrowany .Gdy fillfactor jest równa 0, DBCC DBREINDEX używa wartości współczynnik wypełnienia ostatniego określonego dla indeksu.Ta wartość jest przechowywana w sys.indexes katalogu widoku.Jeśli fillfactor jest określony, table_name i index_name musi być określony.Jeśli fillfactor nie jest określony, używany jest domyślny współczynnik wypełnienia, 100,.Aby uzyskać więcej informacji, zobacz Współczynnik wypełnienia.
Z NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne, których poziomy ważności od 0 do 10.
Uwagi
DBCC DBREINDEX odtwarza indeks dla tabela lub wszystkie indeksy zdefiniowanych dla tabela.Zezwolenie na indeks zostanie przebudowany dynamicznie, wymuszanie ograniczenia na klucz podstawowy lub unikatowe indeksy można zrekonstruować bez konieczności usunąć i ponownie utworzyć te ograniczenia.Oznacza to, że indeks można zrekonstruować nie znając strukturę tabela lub jego ograniczenia.Taka sytuacja może wystąpić po kopiowanie masowe danych do tabela.
DBCC DBREINDEX może odtworzyć wszystkie indeksy dla tabela w jednej instrukcja.To jest łatwiejsze niż kodowania instrukcji wielu usunąć indeks i Utwórz indeks.Ponieważ praca jest wykonywana przez jedną instrukcja, DBCC DBREINDEX jest automatycznie niepodzielny, natomiast pojedyncze instrukcje DROP indeks i Utwórz indeks muszą być uwzględnione w transakcji jest niepodzielny.DBCC DBREINDEX oferuje również, optymalizacje więcej niż pojedyncze instrukcje DROP indeks i utworzyć indeks.
W odróżnieniu od DBCC INDEXDEFRAG lub zmienić indeks z opcją REORGANIZACJA DBCC DBREINDEX jest operacja offline.Jeśli odbudowaniu indeks nieklastrowany udostępnionego blokada jest przechowywana w tabela danego na czas trwania operacji.Zapobiega dokonywaniu modyfikacji tabela.Jeśli odbudowaniu indeks klastrowany tabela blokada jest używana.Zapobiega dostępowi tabela , dlatego efektywnie nadaniem tabela w trybie offline.Do wykonywania przebudowy indeksu są online lub kontrolować stopień równoległości prostych podczas operacji przebudowy indeksu, należy użyć ALTER ODBUDOWAĆ indeks instrukcja z opcją ONLINE.
Aby uzyskać więcej informacji na temat wyboru metoda odbudować lub reorganizować indeks zobacz Reorganizowanie i odbudowa indeksów .
Ograniczenia
DBCC DBREINDEX nie jest obsługiwana do użytku na następujące obiekty:
Tabele systemowe
Indeksy przestrzenne
Zestawy wyników
O ile nie określono NO_INFOMSGS (musi być określona nazwa tabela ), DBCC DBREINDEX zawsze zwraca:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Uprawnienia
Obiekt wywołujący musi własnej tabelalub element członkowski sysadmin stała rola serwera db_owner stałej rola bazy danychlub db_ddladmin stałej rola bazy danych.
Przykłady
A.Przebudowywanie indeksu
Poniższy przykład buduje ponownie Employee_EmployeeID indeks klastrowany z współczynnik wypełnienia 80 na Employee tabela w AdventureWorks2008R2 bazy danych.
USE AdventureWorks2008R2;
GO
DBCC DBREINDEX ("HumanResources.Employee", PK_Employee_BusinessEntityID,80);
GO
B.Odbudowywanie wszystkie indeksy
Poniższy przykład buduje ponownie wszystkie indeksy na Employee tabela w AdventureWorks2008R2 za pomocą wartości współczynnik wypełnienia 70.
USE AdventureWorks2008R2;
GO
DBCC DBREINDEX ("HumanResources.Employee", " ", 70);
GO