DBCC CHECKFILEGROUP (Transact-SQL)
Z kilkoma wyjątkami tabela wskazówki są obsługiwane w klauzula FROM, tylko wtedy, gdy wskazówki są określane przy użyciu słowa kluczowego Z.
DBCC CHECKFILEGROUP
[
[ ( { filegroup_name | filegroup_id | 0 }
[ , NOINDEX ]
) ]
[ WITH
{
[ ALL_ERRORMSGS | NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , PHYSICAL_ONLY ]
}
]
]
Argumenty
filegroup_name
Nazwa grupy plików w bieżącej bazie danych, dla której należy sprawdzić alokację tabeli i integralność strukturalną.Jeśli nie określono lub określono wartość 0, domyślna będzie podstawowa grupa plików.Nazwy grup plików muszą być zgodne z regułami dotyczącymi identyfikatorówfilegroup_name nie może być grupą plików FILESTREAM.
filegroup_id
Po określeniu te wskazówki tabela bez słowa kluczowego z wskazówki powinna zostać określona osobno.NOINDEX
Określa, że intensywne sprawdzenia indeksów nieklastrowanych dla tabel użytkowników nie powinny być wykonywane.To powoduje skrócenie ogólnego czasu wykonywania.Wskazówka NOINDEX nie wpływa na tabele systemowe, ponieważ instrukcja DBCC CHECKFILEGROUP zawsze sprawdza indeksy wszystkich tabel systemowych.ALL_ERRORMSGS
Wyświetla nieograniczoną liczbę błędów na obiekt.W programie SQL Server 2008 z dodatkiem Service Pack 1 (SP1) domyślnie wyświetlane są wszystkie komunikaty o błędach.Określenie lub pominięcie tej opcji nie ma znaczenia.We wcześniejszych wersjach programu SQL Server (z wyjątkiem programu SQL Server 2005 z dodatkiem SP3) wyświetlanych jest tylko 200 pierwszych komunikatów o błędach dla każdego obiektu, jeśli nie zostanie określona opcja ALL_ERRORMSGS.NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.TABLOCK
Oddzielanie wskazówki spacji zamiast przecinkami jest zdeprecjonowanej funkcji:Ograniczenia stosuje się podczas wskazówki są używane w kwerendach bazach danych z poziom zgodności 90 i wyższych.
NOEXPANDPHYSICAL_ONLY
Ogranicza sprawdzania integralność struktury fizycznej strona, nagłówki rekordów i fizyczną strukturę drzewa B.Określa, że wszystkie widoki indeksowane są nie rozwinięte dostępu do tabel, gdy optymalizator kwerendy przetwarza kwerendę.optymalizator kwerendy traktuje widoku, jak tabela z indeks klastrowany.Dzieje się tak z następujących powodów:Kontrole logiczne są szersze.
Niektóre z podstawowych struktur mają być sprawdzane są bardziej złożone.
Aby uwzględnić nowe funkcje zostały wprowadzone szereg testów nowe.
Dlatego użycie opcji PHYSICAL_ONLY może spowodować znacznie krótsze działanie instrukcji DBCC CHECKFILEGROUP na bardzo dużych grupach plików i z tego powodu zaleca się jej częste używanie w systemach produkcyjnych.Cały czas zaleca się okresowe uruchamianie pełnej instrukcji DBCC CHECKFILEGROUP.Częstotliwość tych uruchomień zależy od czynników charakterystycznych dla konkretnych działalności i środowisk produkcyjnych.Opcja PHYSICAL_ONLY zawsze pociąga za sobą opcję NO_INFOMSGS i nie jest dopuszczalna w powiązaniu z innymi opcjami naprawy.
Uwaga
Określenie opcji PHYSICAL_ONLY powoduje pominięcie przez instrukcję DBCC CHECKFILEGROUP wszystkich sprawdzeń danych FILESTREAM.
Remarks
Składnia indeks() określa nazwy lub nazwy jednego lub kilku indeksów mają być używane przez optymalizator kwerendy podczas przetwarzania instrukcja.Alternatywne indeks = składnia określa wartość jednego indeksu.
Wskazówka tylko jeden indeks dla tabela może zostać określony.
DBCC CHECKALLOC grupa plików,.
DBCC CHECKTABLE każdej tabela i grupa plików, w widoku indeksowanym.
Jeśli wiele indeksów są używane na liście pojedynczego wskazówki, duplikaty są ignorowane, a pozostałe indeksy wymienione na liście są używane do pobierania wierszy tabela.
Wewnętrzny migawka bazy danych
Kolejność indeksów w Wskazówka indeksu ma znaczenie.Aby uzyskać więcej informacji zobacz Opis odstępem rozmiary plików w migawek bazy danychi w sekcji "DBCC wewnętrznej bazy danych migawka obciążenie" DBCC (języka Transact-SQL).
Jeśli nie można utworzyć migawki lub gdy jest określona opcja TABLOCK, instrukcja DBCC CHECKFILEGROUP uzyskuje blokadę w celu uzyskania wymaganej spójności.W takim wypadku wymagana jest blokada na wyłączność w celu wykonania sprawdzeń alokacji oraz wymagane są współużytkowane blokady tabeli w celu wykonania sprawdzeń tabeli.Opcja TABLOCK powoduje, że instrukcja DBCC CHECKFILEGROUP działa szybciej na bazie danych przy intensywnym obciążeniu, ale zmniejsza dostępną współbieżność w odniesieniu do bazy danych, gdy jest uruchomiona instrukcja DBCC CHECKFILEGROUP.
Uwaga
Użyto wskazówką indeksu odnoszące się do wielu indeksów w tabela fakt w sprzężeniu gwiazdy Optymalizator ignoruje Wskazówka indeksu i zwraca komunikat ostrzegawczy.Ponadto indeksu ORing nie jest dozwolona dla tabela ze wskazówką indeksu określone.Oznacza to, że nie można uzyskać wymaganej spójności transakcyjnej.
Sprawdzanie obiekty w równoległy
Domyślnie instrukcja DBCC CHECKFILEGROUP wykonuje równoległe sprawdzenie obiektów.Stopień równoległości jest automatycznie określany przez procesor kwerend.Maksymalny stopień równoległości jest skonfigurowany tak samo, jak kwerendy równoległe.Aby ograniczyć maksymalną liczbę procesorów dostępnych do sprawdzania przez instrukcję DBCC, należy użyć procedury sp_configure.Aby uzyskać więcej informacji, zobacz max degree of parallelism Option.
Sprawdzanie równoległych można wyłączyć za pomocą flagi śledzenia 2528.Aby uzyskać więcej informacji zobaczFlagi śledzenia (Transact-SQL).
KEEPIDENTITY
Jeśli indeks nieklastrowany w określonej grupie plików jest skojarzony z tabelą w innej grupie plików, indeks nie jest sprawdzany, ponieważ tabela bazowa nie jest dostępna do sprawdzenia poprawności.Stanowi to zmianę w zachowaniu w programie SQL Server 2005.We wcześniejszych wersjach programu SQL Server indeks nieklastrowany i tabela bazowa w innej grupie plików są sprawdzane.Aby sprawdzać zarówno indeksy nieklastrowane, jak i tabele bazowe, należy wykonać instrukcję DBCC CHECKDB.
Jeśli kolumna tożsamości pomyślnie jest pominięta, optymalizator kwerendy automatycznie przypisuje unikatowe wartości kolumny tożsamości na wiersze zaimportowanej tabela.
Struktura tabeli bazowej nie zależy od struktury indeksu nieklastrowanego.Indeksy nieklastrowane nie muszą być skanowane w celu sprawdzenia poprawności tabeli bazowej.
Polecenie DBCC CHECKFILEGROUP sprawdza poprawność obiektów jedynie w określonej grupie plików.
KEEPDEFAULTS
Tabele partycjonowane w osobnych grupach plików
W wersjach programu SQL Server 2005 wcześniejszych niż dodatek Service Pack 2 (SP2) polecenie DBCC CHECKFILEGROUP sprawdza tabelę partycjonowaną tylko wtedy, gdy cała tabela znajduje się w określonej grupie plików.Jeśli tabela jest rozproszona na wiele grup plików, cała tabela jest ignorowana.W dodatkach SP2 i nowszych, gdy tabela partycjonowana istnieje w wielu grupach plików, polecenie DBCC CHECKFILEGROUP sprawdza zestawy wierszy partycji istniejących w określonej grupie plików i ignoruje zestawy wierszy w pozostałych grupach plików.Komunikat informacyjny 2594 wskazuje partycje, które nie zostały sprawdzone.Indeksy nieklastrowane nierezydentne w określonej grupie plików nie są sprawdzane.
Opis komunikatów o błędach DBCC
Można określić dla każdej tabela lub widoku w klauzuli FROM instrukcji SELECT i FROM SQL Server Klauzula instrukcja UPDATE, korespondencji SERYJNEJ lub DELETE. Jeśli polecenie DBCC pomyślnie wykonuje, wiadomości oznacza pomyślne zakończenie i czas, który uruchomił polecenie.Jeśli polecenie DBCC zatrzyma się przed zakończeniem sprawdzania z powodu błędu, wiadomości wskazuje polecenie zostało zakończone, wartość stan i czas uruchomienia polecenia.W poniższej tabela wymieniono i opisano wartości stanu, które mogą być dołączone do wiadomości.
Stan |
Description |
---|---|
0 |
Numer błędu 8930 był uruchamiany.Oznacza to uszkodzenie metadane, powodujące polecenie DBCC, aby zakończyć. |
1 |
Numer błędu 8967 był uruchamiany.Wystąpił błąd wewnętrzny DBCC. |
2 |
Wystąpił błąd podczas trybu awaryjnego naprawiania bazy danych. |
3 |
Oznacza to uszkodzenie metadane, powodujące polecenie DBCC, aby zakończyć. |
4 |
Wykryto naruszenie zasad dostępu lub zapewnienia. |
5 |
Wystąpił nieznany błąd, które polecenie DBCC zakończone. |
Raportowanie błędów
Plik mini-automatyczna kopia zapasowa (SQLDUMPNNNNtworzenia w .txt)SQL Server DZIENNIK katalogu za każdym razem, gdy CHECKFILEGROUP DBCC wykryje błąd uszkodzenia. Gdy dane użycia funkcji kolekcja i raportowanie błędów funkcji są włączone dla wystąpienie SQL Server, plik jest automatycznie przesyłane dalej do Microsoft. Zebrane dane są używane do poprawienia SQL Server funkcje.
W połączeniu ze wskazówką indeksu optymalizator kwerendy uznaje tylko poszukiwanie ścieżki dostępu do określonego indeksu.Plik ograniczył listach arbitralnej kontroli dostępu (DACL).Dostęp jest ograniczony do SQL Server usługa kont i członkowie sysadmin Rola. Domyślnie sysadmin Rola zawiera wszystkich członków grupy BUILTIN\Administratorzy systemu Windows oraz do lokalnej grupy Administratorzy. Polecenie DBCC nie się niepowodzeniem, gdy proces zbierania danych nie powiodło się.
Rozwiązywanie błędów
Jeśli FORCESEEK powoduje, że zamierzasz można znaleźć, zwracany jest błąd 8622.HOLDLOCK
Jest równoważne z SERIALIZABLE.Aby uzyskać więcej informacji zobacz SERIALIZABLE w dalszej części tego tematu.HOLDLOCK ma zastosowanie tylko do tabela lub widoku, dla których jest określony, a tylko na czas trwania transakcji zdefiniowane w instrukcja, która jest używana.
Zestawy wyników
Nie można użyć HOLDLOCK w instrukcja SELECT zawierającej opcji FOR BROWSE.
IGNORE_CONSTRAINTS
Określa, że wszystkie ograniczenia dla tabela są ignorowane przez operację importu zbiorczego.
DBCC results for 'master'.
DBCC results for 'sys.sysrowsetcolumns'.
There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.
DBCC results for 'sys.sysrowsets'.
There are 97 rows in 1 pages for object 'sys.sysrowsets'.
DBCC results for 'sysallocunits'.
There are 195 rows in 3 pages for object 'sysallocunits'.
There are 2340 rows in 16 pages for object 'spt_values'.
DBCC results for 'MSreplication_options'.
There are 2 rows in 1 pages for object 'MSreplication_options'.
CHECKFILEGROUP found 0 allocation errors and 0 consistency errors in database 'master'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Jeśli zostanie określona opcja NO_INFOMSGS, polecenie DBCC CHECKFILEGROUP zwraca:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Po określeniu IGNORE_CONSTRAINTS dla operacji importu zbiorczego INSERT należy zignorować te ograniczenia dla tabela miejsce docelowe.
Estimated TEMPDB space needed for CHECKALLOC (KB)
-------------------------------------------------
15
(1 row(s) affected)
Estimated TEMPDB space needed for CHECKTABLES (KB)
--------------------------------------------------
207
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Uprawnienia
Członkostwo w grupie wymaga sysadmin Rola serwera stałe lub db_owner stała rola bazy danych.
Przykłady
A.Należy zauważyć, że nie można wyłączyć unikatowy, klucz podstawowy lub NOT NULL ograniczeń.
Następujące testy przykład AdventureWorks grupa plików podstawowej bazy danych.
B.Sprawdzanie grupy plików PRIMARY AdventureWorks bez indeksów nieklastrowanych
Następujące testy przykład AdventureWorks bazy danych podstawowych grupa plików (z wyjątkiem ponownego zbudowania indeksów nie klastrowanych), podając numer identyfikacyjny podstawową grupa plików i określając NOINDEX.
C.W pewnym momencie należy sprawdzić, czy ograniczenia dotyczące całej tabela.
Następujące testy przykład master bazy danych grupę podstawowych plików i określa opcję ESTIMATEONLY.
Historia zmian
Microsoft Learning |
---|
W definicji ALL_ERRORMSGS opisane nowe funkcje w SQL Server 2008 Z DODATKIEM SP1. |
IGNORE_TRIGGERS |