DBCC DBREINDEX (Transact-SQL)

syssessions

Important noteImportant Note:

This feature will be removed in the next version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. W zamian należy użyć instrukcji ALTER INDEX.

Topic link iconKonwencje składni języka Transact-SQL

DBCC DBREINDEX 
( 
    table_name 
    [ , index_name [ , fillfactor ] ]
)
    [ WITH NO_INFOMSGS ] 

Argumenty

  • table_name
    Nazwa tabeli zawierającej określony indeks lub indeksy do odbudowania.Nazwy tabel muszą być zgodne z regułami dotyczącymi identyfikatorów.

  • index_name
    Dodaje określonej kategorii zadań, alertów lub podmiotów gospodarczych do serwera.Indeks nazw muszą być zgodne z regułami identyfikatorów.Jeśli index_name jest określony, table_name musi być określona. Jeśli index_namenie został określony lub jest "", są przebudowywane wszystkich indeksów w tabela.

  • fillfactor
    Is the percentage of space on each index page for storing data when the index is created or rebuilt.fillfactor replaces the fill factor when the index was created, becoming the new default for the index and for any other nonclustered indexes rebuilt because a clustered index is rebuilt.Kiedy fillfactor 0, DBCC DBREINDEX używa wartości współczynnik wypełnienia ostatnio określonego dla indeksu. Ta wartość jest przechowywana w sys.Indexes Służy do wyświetlania katalogu.

    Jeśli fillfactor jest określony, table_name i index_name musi być określona. Jeśli fillfactor nie jest określony, używany jest domyślny współczynnik wypełnienia, 100. Aby uzyskać więcej informacji zobaczFill Factor.

  • Z NO_INFOMSGS
    Pomija wszystkie komunikaty informacyjne, których poziomy ważności, od 0 do 10.

Remarks

Instrukcja DBCC DBREINDEX odbudowuje jeden lub wszystkie indeksy zdefiniowane dla tabeli.Po zezwoleniu na dynamiczne odbudowywanie indeksów indeksy wymuszające ograniczenie PRIMARY KEY lub UNIQUE mogą być odbudowywane bez konieczności usuwania i ponownego tworzenia tych ograniczeń.Oznacza to, że indeks można odbudować bez znajomości struktury tabeli ani jej ograniczeń.Może to nastąpić po masowym skopiowaniu danych do tabeli.

Instrukcja DBCC DBREINDEX może odbudować wszystkie indeksy dla tabeli w jednej operacji.Jest to łatwiejsze niż kodowanie wielu instrukcji DROP INDEX i CREATE INDEX.W związku z tym, że cała praca jest wykonywana w jednej instrukcji, instrukcja DBCC DBREINDEX jest automatycznie niepodzielna, podczas gdy pojedyncze instrukcje DROP INDEX i CREATE INDEX muszą być uwzględnione w transakcji, aby były niepodzielne.Ponadto instrukcja DBCC DBREINDEX zapewnia większą optymalizację niż pojedyncze instrukcje DROP INDEX i CREATE INDEX.

W odróżnieniu od instrukcji DBCC INDEXDEFRAG i ALTER INDEX z opcją REORGANIZE instrukcja DBCC DBREINDEX jest operacją offline.W przypadku odbudowywania indeksu nieklastrowanego przez czas trwania operacji jest utrzymywana współużytkowana blokada danej tabeli.Zapobiega to modyfikacjom tabeli.W przypadku odbudowywania indeksu klastrowanego jest utrzymywana wyłączna blokada tabeli.Zapobiega to uzyskiwaniu dostępu do tabeli, co faktycznie oznacza przełączenie jej w tryb offline.Aby operację odbudowania indeksu przeprowadzić w trybie online lub mieć kontrolę nad stopniem równoległości podczas tej operacji, należy użyć instrukcji ALTER INDEX REBUILD z opcją ONLINE.

Aby uzyskać więcej informacji na temat wyboru metoda do odbudowania lub do reorganizacji indeks zobacz Reorganizing and Rebuilding Indexes .

Ograniczenia

Używanie instrukcji DBCC DBREINDEX nie jest obsługiwane w odniesieniu do następujących obiektów:

  • Tabele systemowe

  • Usuwa określony serwer miejsce docelowe.

Zestawy wyników

O ile nie jest określona opcja NO_INFOMSGS (nazwa tabeli musi być określona), instrukcja DBCC DBREINDEX zawsze zwraca następujący komunikat:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Uprawnienia

Obiekt wywołujący musi własnej tabela lub być członkiem sysadmin stała rola serwera db_owner stałe rola bazy danych lub db_ddladmin stała rola bazy danych.

Przykłady

A.Odbudowywanie indeksu

Poniższy przykład buduje ponownie Employee_EmployeeID Indeks klastrowany z współczynnik wypełnienia 80 na Employee Tabela w AdventureWorks Baza danych.

B.Odbudowywanie wszystkich indeksów

Poniższy przykład buduje ponownie wszystkie indeksy na Employee Tabela w AdventureWorks za pomocą wartość współczynnik wypełnienia 70.