Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
Kontroluje přidělení a strukturální integritu všech tabulek a indexovaných zobrazení v zadané skupině souborů aktuální databáze.
Syntax
DBCC CHECKFILEGROUP
[
[ ( { filegroup_name | filegroup_id | 0 }
[ , NOINDEX ]
) ]
[ WITH
{
[ ALL_ERRORMSGS | NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , PHYSICAL_ONLY ]
[ , MAXDOP = number_of_processors ]
}
]
]
Argumenty
filegroup_name
Název skupiny souborů v aktuální databázi, pro kterou chcete zkontrolovat přidělování tabulek a strukturální integritu. Pokud není zadána nebo pokud je zadána hodnota 0, je výchozí primární skupina souborů. Názvy skupin souborů musí splňovat pravidla pro identifikátory .
filegroup_name nemůže být skupina souborů FILESTREAM.
filegroup_id
Identifikační číslo (ID) skupiny souborů v aktuální databázi, pro kterou chcete zkontrolovat přidělování tabulek a strukturální integritu.
NOINDEX
Určuje, že by se neměly provádět náročné kontroly neclusterovaných indexů pro tabulky uživatelů. Tím se sníží celková doba provádění.
NOINDEX nemá vliv na systémové tabulky, protože DBCC CHECKFILEGROUP vždy kontroluje všechny indexy systémových tabulek.
ALL_ERRORMSGS
Zobrazí neomezený počet chyb na objekt. Ve výchozím nastavení se zobrazí všechny chybové zprávy. Zadání nebo vynechání této možnosti nemá žádný vliv.
NO_INFOMSGS
Potlačí všechny informační zprávy.
TABLOCK
Způsobí, že DBCC CHECKFILEGROUP získat zámky místo použití interního snímku databáze.
POUZE ODHAD
Zobrazí odhadovanou velikost tempdb místa potřebného ke spuštění DBCC CHECKFILEGROUP se všemi ostatními zadanými možnostmi.
PHYSICAL_ONLY
Omezuje kontrolu na integritu fyzické struktury stránky, záhlaví záznamů a fyzické struktury B-stromů. Tato kontrola je navržená tak, aby poskytovala malou režijní kontrolu fyzické konzistence skupiny souborů, může tato kontrola také detekovat roztržené stránky a běžné chyby hardwaru, které můžou ohrozit data. Úplné spuštění DBCC CHECKFILEGROUP může trvat výrazně déle než v předchozích verzích. K tomuto chování dochází z následujících důvodů:
- Logické kontroly jsou komplexnější.
- Některé základní struktury, které se mají zkontrolovat, jsou složitější.
- Zavedlo se mnoho nových kontrol, které zahrnují nové funkce.
Poznámka
Dokumentace používá termín B-tree obecně v odkazu na indexy. V indexech rowstore databázový stroj implementuje strom B+. To neplatí pro indexy columnstore ani indexy v tabulkách optimalizovaných pro paměť. Další informace najdete v SQL Serveru a architektuře indexu Azure SQL a průvodci návrhem.
Proto použití PHYSICAL_ONLY možnosti může způsobit mnohem kratší dobu běhu pro DBCC CHECKFILEGROUP u velkých skupin souborů, a proto se doporučuje pro časté použití v produkčních systémech. Přesto doporučujeme pravidelně provádět úplné spuštění DBCC CHECKFILEGROUP. Frekvence těchto spuštění závisí na faktorech specifických pro jednotlivé firmy a produkční prostředí.
PHYSICAL_ONLY vždy implikuje NO_INFOMSGS a není povolena s žádnou z možností opravy.
Poznámka
Určení PHYSICAL_ONLY způsobí, že DBCC CHECKFILEGROUP přeskočí všechny kontroly dat FILESTREAM.
MAXDOP
platí pro: SQL Server 2014 Service Pack 2 a novější verze
Přepíše maximální stupeň paralelismu možnost konfigurace sp_configure příkazu.
MAXDOP může překročit hodnotu nakonfigurovanou pomocí sp_configure. Pokud MAXDOP překročí hodnotu nakonfigurovanou pro správce prostředků, použije databázový stroj hodnotu MAXDOP správce prostředků popsanou v ALTER WORKLOAD GROUP (Transact-SQL). Všechna sémantická pravidla používaná s maximálním stupněm konfigurace paralelismu se použijí při použití nápovědy k dotazu MAXDOP. Další informace najdete v tématu Konfigurace maximálního stupně paralelismu Možnosti konfigurace serveru.
Opatrnost
Pokud je MAXDOP nastavená na nulu, server zvolí maximální stupeň paralelismu.
Poznámky
DBCC CHECKFILEGROUP a DBCC CHECKDB jsou podobné příkazy DBCC. Hlavní rozdíl spočívá v tom, že DBCC CHECKFILEGROUP je omezena na jednu zadanou skupinu souborů a požadované tabulky.
DBCC CHECKFILEGROUP provede následující příkazy:
- DBCC CHECKALLOC skupiny souborů.
- DBCC CHECKTABLE každé tabulky a indexovaného zobrazení ve skupině souborů.
Spouštění DBCC CHECKALLOC nebo DBCC CHECKTABLE odděleně od DBCC CHECKFILEGROUP se nevyžaduje.
Snímek interní databáze
DBCC CHECKFILEGROUP používá interní snímek databáze k zajištění transakční konzistence, kterou musí tyto kontroly provést. Další informace najdete v tématu Zobrazení velikosti zhuštěného souboru snímku databáze (Transact-SQL) a použití interního snímku databáze DBTransact-SQLCC oddílu .
Pokud snímek nejde vytvořit nebo je zadána možnost TABLOCK, DBCC CHECKFILEGROUP získá zámky, aby se získala požadovaná konzistence. V takovém případě se k provádění kontrol přidělení vyžaduje výhradní zámek databáze a k provádění kontrol tabulek se vyžadují zámky sdílených tabulek.
TABLOCK způsobí rychlejší spuštění DBCC CHECKFILEGROUP v databázi s velkým zatížením, ale snižuje souběžnost dostupnou v databázi při spuštění DBCC CHECKFILEGROUP.
Poznámka
Spuštění DBCC CHECKFILEGROUP proti tempdb neprovádí žádné kontroly přidělení a musí získat zámky sdílených tabulek, aby bylo možné provádět kontroly tabulek. Důvodem je to, že z důvodů výkonu nejsou snímky databáze na tempdbk dispozici . To znamená, že požadovanou transakční konzistenci nelze získat.
Paralelní kontrola objektů
Ve výchozím nastavení DBCC CHECKFILEGROUP provádí paralelní kontrolu objektů. Stupeň paralelismu je automaticky určen procesorem dotazů. Maximální stupeň paralelismu se konfiguruje stejně jako paralelní dotazy. Chcete-li omezit maximální počet procesorů dostupných pro kontrolu DBCC, použijte sp_configure. Další informace najdete v tématu Konfigurace maximálního stupně paralelismu Možnosti konfigurace serveru.
Paralelní kontrolu lze zakázat pomocí příznaku trasování 2528. Další informace naleznete v tématu Nastavení příznaků trasování pomocí DBCC TRACEON.
Neclusterované indexy v samostatných skupinách souborů
Pokud je neclusterovaný index v zadané skupině souborů přidružený k tabulce v jiné skupině souborů, index se nekontroluje, protože základní tabulka není k dispozici pro ověření.
Pokud má tabulka v zadané skupině souborů neclusterovaný index v jiné skupině souborů, neclusterovaný index se nekontroluje z následujících důvodů:
- Struktura základní tabulky není závislá na struktuře neclusterovaného indexu. Neclusterované indexy není nutné kontrolovat, aby se ověřila základní tabulka.
- Příkaz
DBCC CHECKFILEGROUPověřuje objekty pouze v zadané skupině souborů.
Clusterovaný index a tabulka nemůže být v různých skupinách souborů; předchozí aspekty se proto vztahují pouze na neclusterované indexy.
Dělené tabulky v samostatných skupinách souborů
Pokud existuje tabulka rozdělená na více skupin souborů, DBCC CHECKFILEGROUP zkontroluje sady řádků oddílů, které existují v zadané skupině souborů, a ignoruje sady řádků v ostatních skupinách souborů. Informační zpráva 2594 označuje oddíly, které nebyly zaškrtnuté. Neclusterované indexy, které nejsou rezidenty v zadané skupině souborů, nejsou zaškrtnuté.
Vysvětlení chybových zpráv DBCC
Po dokončení příkazu DBCC CHECKFILEGROUP se do protokolu chyb SQL Serveru zapíše zpráva. Pokud se příkaz DBCC úspěšně spustí, zpráva značí úspěšné dokončení a dobu, po kterou příkaz běžel. Pokud se příkaz DBCC zastaví před dokončením kontroly kvůli chybě, zpráva indikuje, že příkaz byl ukončen, hodnota stavu a doba spuštění příkazu. Následující tabulka uvádí a popisuje stavové hodnoty, které lze zahrnout do zprávy.
| Stát | Popis |
|---|---|
| 0 | Byla vyvolána chyba 8930. Označuje poškození metadat, která způsobila ukončení příkazu DBCC. |
| 1 | Byla vyvolána chyba 8967. Došlo k vnitřní chybě DBCC. |
| 2 | Při opravě databáze v nouzovém režimu došlo k chybě. |
| 3 | Označuje poškození metadat, která způsobila ukončení příkazu DBCC. |
| 4 | Bylo zjištěno porušení kontrolního výrazu nebo přístupu. |
| 5 | Došlo k neznámé chybě, která ukončila příkaz DBCC. |
Zasílání zpráv o chybách
V adresáři SQL Serveru SQLDUMP<nnnn>.txt se vytvoří soubor s mini výpisem paměti (LOG), kdykoli DBCC CHECKFILEGROUP zjistí chybu poškození. Pokud jsou pro instanci SQL Serveru povolené funkce shromažďování dat o využití funkcí a funkce zasílání zpráv o chybách, soubor se automaticky přepošla do Microsoftu. Shromážděná data se používají ke zlepšení funkčnosti SQL Serveru.
Soubor s výpisem paměti obsahuje výsledky příkazu DBCC CHECKFILEGROUP a další diagnostický výstup. Soubor omezil volitelné seznamy řízení přístupu (DACL). Přístup je omezen na účet služby SYSTÉMU SQL Server a členy role správce systému. Ve výchozím nastavení role správce systému obsahuje všechny členy skupiny Windows BUILTIN\Administrators a místní správce. Pokud proces shromažďování dat selže, příkaz DBCC se nezdaří.
Řešení chyb
Pokud DBCC CHECKFILEGROUPnějaké chyby hlásí, doporučujeme obnovit databázi ze zálohy databáze. Možnosti opravy nelze zadat pro DBCC CHECKFILEGROUP.
Pokud neexistuje žádná záloha, spuštění DBCC CHECKDB se zadanou možností opravy opraví nahlášené chyby. Možnost opravy, která se má použít, se zadává na konci seznamu, pokud byly hlášeny chyby. Oprava chyb pomocí možnosti REPAIR_ALLOW_DATA_LOSS může vyžadovat odstranění některých stránek a dat.
Sady výsledků
DBCC CHECKFILEGROUP vrátí následující sadu výsledků (hodnoty se mohou lišit):
- Kromě případů, kdy je zadán
ESTIMATEONLYneboNO_INFOMSGS. - Pokud pro aktuální databázi není zadána žádná databáze, zda jsou zadány žádné možnosti (s výjimkou
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.
Pokud je zadán NO_INFOMSGS, DBCC CHECKFILEGROUP vrátí:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Pokud je zadán ESTIMATEONLY, DBCC CHECKFILEGROUP vrátí (hodnoty se mohou lišit):
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.
Dovolení
Vyžaduje členství v pevné roli serveru nebo db_owner pevné databázové roli.
Příklady
A. Kontrola primární skupiny souborů v databázi
Následující příklad zkontroluje primární skupinu souborů aktuální databáze.
DBCC CHECKFILEGROUP;
GO
B. Kontrola skupiny souborů AdventureWorks PRIMARY bez neclusterovaných indexů
Následující příklad zkontroluje primární skupinu souborů AdventureWorks2025 databáze (s výjimkou neclusterovaných indexů) zadáním identifikačního čísla primární skupiny souborů a zadáním NOINDEX.
USE AdventureWorks2022;
GO
DBCC CHECKFILEGROUP (1, NOINDEX);
GO
C. Kontrola primární skupiny souborů s možnostmi
Následující příklad zkontroluje primární skupinu souborů databáze master a určuje možnost ESTIMATEONLY.
USE master;
GO
DBCC CHECKFILEGROUP (1)
WITH ESTIMATEONLY;
Viz také
- DBCC (Transact-SQL)
- FILEGROUP_ID (Transact-SQL)
- sp_helpfile (Transact-SQL)
- sp_helpfilegroup (Transact-SQL)
- sys.sysfilegroups (Transact-SQL)
- DBCC CHECKDB (Transact-SQL)
- DBCC CHECKALLOC (Transact-SQL)
- DBCC CHECKTABLE (Transact-SQL)