Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Sprawdza alokację i integralność strukturalną wszystkich tabel i widoków indeksowanych w określonej grupie plików bieżącej bazy danych.
Transact-SQL konwencje składni
Składnia
DBCC CHECKFILEGROUP
[
[ ( { filegroup_name | filegroup_id | 0 }
[ , NOINDEX ]
) ]
[ WITH
{
[ ALL_ERRORMSGS | NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , PHYSICAL_ONLY ]
[ , MAXDOP = number_of_processors ]
}
]
]
Arguments
filegroup_name
Nazwa grupy plików w bieżącej bazie danych, dla której ma być sprawdzana alokacja tabeli i integralność strukturalna. Jeśli nie określono wartości lub jeśli określono wartość 0, wartość domyślna to podstawowa grupa plików. Nazwy grup plików muszą być zgodne z regułami dotyczącymi identyfikatorów.
filegroup_name nie może być grupą plików FILESTREAM.
filegroup_id
Numer identyfikacji grupy plików (ID) w bieżącej bazie danych, dla której ma być sprawdzana alokacja tabeli i integralność strukturalna.
NOINDEX
Określa, że nie należy wykonywać intensywnych kontroli indeksów nieklastrowanych dla tabel użytkowników. Zmniejsza to całkowity czas wykonywania.
NOINDEX nie ma wpływu na tabele systemowe, ponieważ DBCC CHECKFILEGROUP zawsze sprawdza wszystkie indeksy tabel systemowych.
ALL_ERRORMSGS
Wyświetla nieograniczoną liczbę błędów na obiekt. Wszystkie komunikaty o błędach są domyślnie wyświetlane. Określenie lub pominięcie tej opcji nie ma wpływu.
NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.
TABLOCK
Powoduje DBCC CHECKFILEGROUP uzyskanie blokad zamiast używania wewnętrznej migawki bazy danych.
TYLKO SZACOWANIE
Przedstawia szacowaną ilość miejsca wymaganego tempdb do uruchomienia DBCC CHECKFILEGROUP ze wszystkimi innymi określonymi opcjami.
PHYSICAL_ONLY
Ogranicza sprawdzanie integralności fizycznej struktury strony, nagłówków rekordów i fizycznej struktury drzew B.. Zaprojektowana w celu zapewnienia niewielkiej kontroli spójności fizycznej grupy plików, ta kontrola może również wykrywać rozdarte strony i typowe awarie sprzętowe, które mogą naruszyć bezpieczeństwo danych. Pełny przebieg DBCC CHECKFILEGROUP może trwać znacznie dłużej niż we wcześniejszych wersjach. To zachowanie występuje z następujących powodów:
- Testy logiczne są bardziej kompleksowe.
- Niektóre struktury, które mają być sprawdzane, są bardziej złożone.
- Wprowadzono wiele nowych kontroli w celu uwzględnienia nowych funkcji.
Uwaga / Notatka
W dokumentacji jest zwykle używany termin B-tree w odniesieniu do indeksów. W indeksach typu rowstore silnik bazy danych implementuje drzewo B+. Nie dotyczy to indeksów magazynu kolumn ani indeksów w tabelach zoptymalizowanych pod kątem pamięci. Aby uzyskać więcej informacji, zobacz architekturę i przewodnik projektowania indeksu SQL Server i Azure SQL.
W związku z tym użycie PHYSICAL_ONLY opcji może spowodować znacznie krótszy czas wykonywania dla DBCC CHECKFILEGROUP dużych grup plików i dlatego jest zalecane do częstego używania w systemach produkcyjnych. Nadal zalecamy okresowe wykonywanie pełnego przebiegu DBCC CHECKFILEGROUP . Częstotliwość tych przebiegów zależy od czynników specyficznych dla poszczególnych firm i środowisk produkcyjnych.
PHYSICAL_ONLY zawsze oznacza NO_INFOMSGS i nie jest dozwolony z żadną z opcji naprawy.
Uwaga / Notatka
Określanie przyczyn PHYSICAL_ONLY pomijania DBCC CHECKFILEGROUP wszystkich kontroli danych FILESTREAM.
MAXDOP
Dotyczy: SQL Server 2014 z dodatkiem Service Pack 2 lub nowszym
Zastępuje opcję konfiguracji sp_configure dla instrukcji . Wartość MAXDOP może przekraczać wartość skonfigurowaną za pomocą sp_configurepolecenia . Jeśli MAXDOP przekroczy wartość skonfigurowaną za pomocą zarządcy zasobów, aparat bazy danych używa wartości Zarządca MAXDOP zasobów, opisanej w artykule ALTER WORKLOAD GROUP (Transact-SQL). Wszystkie reguły semantyczne używane z opcją konfiguracji maksymalnego stopnia równoległości mają zastosowanie podczas korzystania z MAXDOP wskazówki dotyczącej zapytania. Aby uzyskać więcej informacji, zobacz Configure the max degree of parallelism Server Configuration Option.
Ostrzeżenie
Jeśli MAXDOP ustawiono wartość zero, serwer wybierze maksymalny stopień równoległości.
Uwagi
DBCC CHECKFILEGROUP i DBCC CHECKDB są podobnymi poleceniami DBCC. Główna różnica polega na tym, że DBCC CHECKFILEGROUP jest ograniczona do pojedynczej określonej grupy plików i wymaganych tabel.
DBCC CHECKFILEGROUP Wykonuje następujące polecenia:
- DBCC CHECKALLOC grupy plików.
- DBCC CHECKTABLE każdej tabeli i widoku indeksowanego w grupie plików.
Uruchamianie DBCC CHECKALLOC lub DBCC CHECKTABLE oddzielenie od DBCC CHECKFILEGROUP nie jest wymagane.
Wewnętrzna migawka bazy danych
DBCC CHECKFILEGROUP używa wewnętrznej migawki bazy danych, aby zapewnić spójność transakcyjną, którą musi wykonać te testy. Aby uzyskać więcej informacji, zobacz Wyświetlanie rozmiaru pliku rozrzedzielonego migawki bazy danych (Transact-SQL) i sekcji użycia wewnętrznej migawki bazy danych DBCC w pliku DBCC (Transact-SQL).
Jeśli nie można utworzyć migawki lub TABLOCK określono opcję, DBCC CHECKFILEGROUP uzyskuje blokady w celu uzyskania wymaganej spójności. W takim przypadku wymagana jest wyłączna blokada bazy danych do przeprowadzania kontroli alokacji, a blokady udostępnionej tabeli są wymagane do przeprowadzania kontroli tabeli.
TABLOCK powoduje DBCC CHECKFILEGROUP szybsze działanie bazy danych pod dużym obciążeniem, ale zmniejsza współbieżność dostępną w bazie danych podczas DBCC CHECKFILEGROUP działania.
Uwaga / Notatka
Uruchamianie DBCC CHECKFILEGROUP względem tempdb nie wykonuje żadnych kontroli alokacji i musi uzyskać udostępnione blokady tabeli w celu przeprowadzania kontroli tabeli. Wynika to z faktu, że ze względu na wydajność migawki bazy danych nie są dostępne w programie tempdb. Oznacza to, że nie można uzyskać wymaganej spójności transakcyjnej.
Równoległe sprawdzanie obiektów
Domyślnie DBCC CHECKFILEGROUP wykonuje równoległe sprawdzanie obiektów. Stopień równoległości jest automatycznie określany przez procesor zapytań. Maksymalny stopień równoległości jest skonfigurowany tak samo jak zapytania równoległe. Aby ograniczyć maksymalną liczbę procesorów dostępnych do sprawdzania DBCC, użyj sp_configure. Aby uzyskać więcej informacji, zobacz Configure the max degree of parallelism Server Configuration Option.
Sprawdzanie równoległe można wyłączyć przy użyciu flagi śledzenia 2528. Aby uzyskać więcej informacji, zobacz Ustawianie flag śledzenia za pomocą funkcji TRACEON DBCC.
Indeksy nieklastrowane w osobnych grupach plików
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 podstawowa nie jest dostępna do weryfikacji.
Jeśli tabela w określonej grupie plików ma indeks nieklastrowany w innej grupie plików, indeks nieklastrowany nie jest sprawdzany z powodu następujących elementów:
- Struktura tabeli bazowej nie zależy od struktury indeksu nieklastrowanego. Indeksy nieklastrowane nie muszą być skanowane w celu zweryfikowania tabeli podstawowej.
- Polecenie
DBCC CHECKFILEGROUPweryfikuje obiekty tylko w określonej grupie plików.
Indeks klastrowany i tabela nie mogą znajdować się w różnych grupach plików; w związku z tym poprzednie zagadnienia dotyczą tylko indeksów nieklastrowanych.
Partycjonowane tabele w osobnych grupach plików
Gdy tabela partycjonowana istnieje w wielu grupach plików, DBCC CHECKFILEGROUP sprawdza zestawy wierszy partycji, które istnieją w określonej grupie plików i ignoruje zestawy wierszy w innych grupach plików. Komunikat informacyjny 2594 wskazuje partycje, które nie zostały zaznaczone. Indeksy nieklastrowane, które nie są rezydentami w określonej grupie plików, nie są sprawdzane.
Omówienie komunikatów o błędach DBCC
Po zakończeniu DBCC CHECKFILEGROUP polecenia zostanie zapisany komunikat w dzienniku błędów programu SQL Server. Jeśli polecenie DBCC zostanie wykonane pomyślnie, komunikat wskazuje pomyślne ukończenie i czas uruchomienia polecenia. Jeśli polecenie DBCC zatrzymuje się przed ukończeniem sprawdzania z powodu błędu, komunikat wskazuje, że polecenie zostało zakończone, wartość stanu i czas uruchomienia polecenia. W poniższej tabeli wymieniono i opisano wartości stanu, które można uwzględnić w komunikacie.
| State | Description |
|---|---|
| 0 | Zgłoszono błąd 8930. Oznacza to uszkodzenie metadanych, które spowodowało zakończenie polecenia DBCC. |
| 1 | Zgłoszono błąd numer 8967. Wystąpił wewnętrzny błąd DBCC. |
| 2 | Wystąpił błąd podczas naprawy bazy danych w trybie awaryjnym. |
| 3 | Oznacza to uszkodzenie metadanych, które spowodowało zakończenie polecenia DBCC. |
| 4 | Wykryto naruszenie potwierdzenia lub dostępu. |
| 5 | Wystąpił nieznany błąd, który zakończył polecenie DBCC. |
Raportowanie błędów
Plik mini-zrzutu (SQLDUMP<nnnn>.txt) jest tworzony w katalogu programu SQL Server LOG za każdym razem, gdy DBCC CHECKFILEGROUP wykryje błąd uszkodzenia. Po włączeniu funkcji zbierania danych użycia i funkcji raportowania błędów dla wystąpienia programu SQL Server plik jest automatycznie przekazywany do firmy Microsoft. Zebrane dane służą do ulepszania funkcjonalności programu SQL Server.
Plik zrzutu zawiera wyniki DBCC CHECKFILEGROUP polecenia i dodatkowe dane wyjściowe diagnostyczne. Plik ma ograniczone uznaniowe listy kontroli dostępu (DACLs). Dostęp jest ograniczony do konta usługi programu SQL Server i członków roli administratora systemu . Domyślnie rola administratora systemu zawiera wszystkich członków grupy WINDOWS BUILTIN\Administrators i grupy administratora lokalnego. Polecenie DBCC nie powiedzie się, jeśli proces zbierania danych zakończy się niepowodzeniem.
Usuwanie błędów
Jeśli jakiekolwiek błędy są zgłaszane przez DBCC CHECKFILEGROUPprogram , zalecamy przywrócenie bazy danych z kopii zapasowej bazy danych. Nie można określić opcji naprawy na .DBCC CHECKFILEGROUP
Jeśli żadna kopia zapasowa nie istnieje, uruchomienie DBCC CHECKDB z wybraną opcją naprawy poprawia zgłoszone błędy. Opcja naprawy do użycia jest określona na końcu listy, jeśli zgłoszono błędy. Usunięcie błędów przy użyciu opcji REPAIR_ALLOW_DATA_LOSS może wymagać usunięcia niektórych stron, a tym samym usunięcia danych.
Zestawy wyników
DBCC CHECKFILEGROUP Zwraca następujący zestaw wyników (wartości mogą się różnić):
- Z wyjątkiem sytuacji, w których
ESTIMATEONLYokreślono wartość lubNO_INFOMSGS. - Dla bieżącej bazy danych, jeśli nie określono żadnej bazy danych, określana jest żadna opcja (z wyjątkiem
NOINDEX) .
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 NO_INFOMSGS zostanie określony, DBCC CHECKFILEGROUP zwraca:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Jeśli ESTIMATEONLY zostanie określony, DBCC CHECKFILEGROUP zwraca wartość (wartości mogą się różnić):
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.
Permissions
Wymaga członkostwa w stałej roli serwera sysadmin lub stałej roli bazy danych db_owner .
Przykłady
A. Sprawdź grupę plików PRIMARY w bazie danych
Poniższy przykład sprawdza podstawową grupę plików bieżącej bazy danych.
DBCC CHECKFILEGROUP;
GO
B. Sprawdź grupę plików ADVENTUREWorks PRIMARY bez indeksów nieklastrowanych
Poniższy przykład sprawdza podstawową grupę AdventureWorks2025 plików bazy danych (z wyłączeniem indeksów nieklastrowanych), określając numer identyfikacyjny podstawowej grupy plików i określając wartość NOINDEX.
USE AdventureWorks2022;
GO
DBCC CHECKFILEGROUP (1, NOINDEX);
GO
C. Sprawdź grupę plików PRIMARY z opcjami
Poniższy przykład sprawdza podstawową grupę master plików bazy danych i określa opcję ESTIMATEONLY.
USE master;
GO
DBCC CHECKFILEGROUP (1)
WITH ESTIMATEONLY;