Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Ellenőrzi az aktuális adatbázis megadott fájlcsoportjában lévő összes tábla és indexelt nézet lefoglalását és szerkezeti integritását.
Transact-SQL szintaxis konvenciói
Szintaxis
DBCC CHECKFILEGROUP
[
[ ( { filegroup_name | filegroup_id | 0 }
[ , NOINDEX ]
) ]
[ WITH
{
[ ALL_ERRORMSGS | NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , PHYSICAL_ONLY ]
[ , MAXDOP = number_of_processors ]
}
]
]
Érvek
filegroup_name
Annak a fájlcsoportnak a neve az aktuális adatbázisban, amelynél ellenőrizni szeretné a táblafoglalást és a szerkezeti integritást. Ha nincs megadva, vagy ha 0 van megadva, az alapértelmezett az elsődleges fájlcsoport. A fájlcsoportok nevének meg kell felelnie azonosítók.
filegroup_name nem lehet FILESTREAM-fájlcsoport.
filegroup_id
A fájlcsoport-azonosító (ID) száma az aktuális adatbázisban, amelynél ellenőrizni szeretné a táblafoglalást és a szerkezeti integritást.
NOINDEX
Azt határozza meg, hogy a felhasználói táblák nem konklúziós indexeinek intenzív ellenőrzése ne történjen meg. Ez csökkenti a teljes végrehajtási időt.
NOINDEX nincs hatással a rendszertáblákra, mert DBCC CHECKFILEGROUP mindig ellenőrzi az összes rendszertábla-indexet.
ALL_ERRORMSGS
Objektumonként korlátlan számú hibát jelenít meg. Alapértelmezés szerint minden hibaüzenet megjelenik. Ennek a beállításnak a megadása vagy kihagyása nincs hatással.
NO_INFOMSGS
Letiltja az összes tájékoztató üzenetet.
TABLOCK
A DBCC CHECKFILEGROUP belső adatbázis-pillanatkép használata helyett zárolások lekérését okozza.
CSAK BECSLÉS
Megjeleníti a tempdb futtatásához szükséges DBCC CHECKFILEGROUP terület becsült mennyiségét az összes többi megadott beállítással.
PHYSICAL_ONLY
Korlátozza az oldal fizikai szerkezetének integritását, a rekordfejléceket és a B-fák fizikai szerkezetét. Úgy tervezték, hogy a fájlcsoport fizikai konzisztenciájának kis mértékű terhelésellenőrzését biztosítsa, ez az ellenőrzés képes észlelni az elszakított oldalakat és az adatokat veszélyeztető gyakori hardverhibákat is. A DBCC CHECKFILEGROUP teljes futtatása jelentősen tovább tarthat, mint a korábbi verziókban. Ez a viselkedés a következő okok miatt fordul elő:
- A logikai ellenőrzések átfogóbbak.
- Az ellenőrizendő mögöttes struktúrák némelyike összetettebb.
- Számos új ellenőrzés lett bevezetve, hogy az új funkciókat is tartalmazza.
Jegyzet
A dokumentáció általában a B-fa kifejezést használja az indexekre hivatkozva. A sorkataszterekben az adatbázismotor egy B+ fát implementál. Ez nem vonatkozik az oszlopcentrikus indexekre vagy a memóriaoptimalizált táblák indexére. További információ: SQL Server és Azure SQL index architektúrája és tervezési útmutatója.
Ezért a PHYSICAL_ONLY beállítás használata sokkal rövidebb futási időt okozhat a DBCC CHECKFILEGROUP nagy méretű fájlcsoportokon, ezért az éles rendszereken való gyakori használathoz ajánlott. Továbbra is azt javasoljuk, hogy rendszeresen végezze el a DBCC CHECKFILEGROUP teljes körű futtatását. A futtatások gyakorisága az egyes vállalkozásokra és éles környezetekre jellemző tényezőktől függ.
PHYSICAL_ONLY mindig NO_INFOMSGS jelent, és a javítási lehetőségek egyikével sem engedélyezett.
Jegyzet
A PHYSICAL_ONLY megadása miatt DBCC CHECKFILEGROUP kihagyja a FILESTREAM-adatok összes ellenőrzését.
MAXDOP
A: SQL Server 2014 Service Pack 2 és újabb verziókra vonatkozik
Felülbírálja a maximális párhuzamossági fokotsp_configure konfigurálási beállítását az utasításhoz. A MAXDOP túllépheti a sp_configureáltal konfigurált értéket. Ha MAXDOP túllépi az Erőforrás-vezérlővel konfigurált értéket, az adatbázismotor a Resource Governor MAXDOP értéket használja, amelyet ALTER SZÁMÍTÁSI FELADATCSOPORT (Transact-SQL). A MAXDOP lekérdezési tipp használatakor minden olyan szemantikai szabály alkalmazható, amely a párhuzamossági konfiguráció maximális fokával használható. További információ: A kiszolgáló konfigurációs beállításainak maximális fokának konfigurálása.
Figyelmeztet
Ha MAXDOP nullára van állítva, akkor a kiszolgáló a párhuzamosság maximális fokát választja ki.
Megjegyzések
DBCC CHECKFILEGROUP és DBCC CHECKDB hasonló DBCC-parancsok. A fő különbség az, hogy a DBCC CHECKFILEGROUP az egyetlen megadott fájlcsoportra és a szükséges táblákra korlátozódik.
DBCC CHECKFILEGROUP a következő parancsokat hajtja végre:
- FÁJLCSOPORT DBCC CHECKALLOC.
- DBCC CHECKTABLE a fájlcsoport összes táblájának és indexelt nézetének.
Nem szükséges a DBCC CHECKALLOC vagy DBCC CHECKTABLEDBCC CHECKFILEGROUP külön futtatása.
Belső adatbázis-pillanatkép
DBCC CHECKFILEGROUP egy belső adatbázis-pillanatkép használatával biztosítja a tranzakciós konzisztenciát, amelyet ezeknek az ellenőrzéseknek el kell végeznie. További információ: Adatbázis-pillanatkép ritka fájljának (Transact-SQL) méretének és DBCC belső adatbázis-pillanatkép-használati szakaszának megtekintése DBCC (Transact-SQL).
Ha nem hozható létre pillanatkép, vagy meg van adva a TABLOCK beállítás, DBCC CHECKFILEGROUP zárolja a szükséges konzisztenciát. Ebben az esetben kizárólagos adatbázis-zárolásra van szükség a foglalási ellenőrzések végrehajtásához, és megosztott táblazárolásokra van szükség a táblaellenőrzések végrehajtásához.
TABLOCK
DBCC CHECKFILEGROUP gyorsabban fut egy nagy terhelésű adatbázison, de csökkenti az adatbázison elérhető egyidejűséget, miközben DBCC CHECKFILEGROUP fut.
Jegyzet
A DBCC CHECKFILEGROUPtempdb futtatása nem végez foglalási ellenőrzéseket, és a táblaellenőrzések végrehajtásához megosztott táblazárakat kell beszereznie. Ennek az az oka, hogy teljesítménybeli okokból az adatbázis-pillanatképek nem érhetők el tempdb. Ez azt jelenti, hogy a szükséges tranzakciós konzisztencia nem kérhető le.
Objektumok ellenőrzése párhuzamosan
Alapértelmezés szerint DBCC CHECKFILEGROUP az objektumok párhuzamos ellenőrzését hajtja végre. A párhuzamosság mértékét a lekérdezésfeldolgozó automatikusan meghatározza. A párhuzamosság maximális foka ugyanúgy van konfigurálva, mint a párhuzamos lekérdezések. A DBCC-ellenőrzéshez elérhető processzorok maximális számának korlátozásához használja a sp_configure. További információ: A kiszolgáló konfigurációs beállításainak maximális fokának konfigurálása.
A párhuzamos ellenőrzés letiltható a 2528-at jelző nyomkövetési jelzővel. További információ: Nyomkövetési jelzők beállítása a DBCC TRACEON használatával.
Nemclustered indexek külön fájlcsoportokon
Ha a megadott fájlcsoport egyik nemclustered indexe egy másik fájlcsoport egyik táblájával van társítva, az index nincs bejelölve, mert az alaptábla nem érhető el ellenőrzésre.
Ha a megadott fájlcsoport egyik táblája nemclustered indexet tartalmaz egy másik fájlcsoportban, a nemclustered index nincs bejelölve a következő miatt:
- Az alaptábla struktúrája nem függ a nemclustered index szerkezetétől. A nemclustered indexeket nem kell beolvasni az alaptábla ellenőrzéséhez.
- A
DBCC CHECKFILEGROUPparancs csak a megadott fájlcsoportban ellenőrzi az objektumokat.
A fürtözött indexek és a táblák nem lehetnek különböző fájlcsoportokon; ezért a korábbi szempontok csak a nem konklúziós indexekre vonatkoznak.
Particionált táblák külön fájlcsoportokon
Ha egy particionált tábla több fájlcsoporton is létezik, DBCC CHECKFILEGROUP ellenőrzi a megadott fájlcsoporton található partíciósorkészleteket, és figyelmen kívül hagyja a többi fájlcsoport sorhalmazait. A 2594 információs üzenet a nem ellenőrzött partíciókat jelzi. A megadott fájlcsoporton nem található nemclustered indexek nincsenek bejelölve.
A DBCC-hibaüzenetek ismertetése
A DBCC CHECKFILEGROUP parancs befejeződése után a rendszer egy üzenetet ír az SQL Server hibanaplójába. Ha a DBCC parancs sikeresen végrehajtja a parancsot, az üzenet a sikeres befejezést és a parancs futtatásának időtartamát jelzi. Ha a DBCC-parancs hiba miatt leáll az ellenőrzés befejezése előtt, az üzenet azt jelzi, hogy a parancs leállt, egy állapotérték és a parancs futási ideje. Az alábbi táblázat felsorolja és ismerteti az üzenetben szereplő állapotértékeket.
| Állam | Leírás |
|---|---|
| 0 | A 8930-es hibaszám lett előállítva. Ez egy metaadat-sérülést jelez, amely miatt a DBCC parancs leállt. |
| 1 | A 8967-es hibaszám ki lett emelve. Belső DBCC-hiba történt. |
| 2 | Hiba történt a vészmódú adatbázis javítása során. |
| 3 | Ez egy metaadat-sérülést jelez, amely miatt a DBCC parancs leállt. |
| 4 | A rendszer érvényességi vagy hozzáférési szabálysértést észlelt. |
| 5 | Ismeretlen hiba történt, amely megszakította a DBCC parancsot. |
Hibajelentés
Az SQL Server SQLDUMP<nnnn>.txt könyvtárában egy miniképfájl (LOG) jön létre, amikor DBCC CHECKFILEGROUP sérülési hibát észlel. Ha a szolgáltatáshasználati adatgyűjtési és hibajelentési funkciók engedélyezve vannak az SQL Server-példányhoz, a rendszer automatikusan továbbítja a fájlt a Microsoftnak. Az összegyűjtött adatok az SQL Server funkcióinak javítására szolgálnak.
A memóriaképfájl tartalmazza a DBCC CHECKFILEGROUP parancs eredményeit és a további diagnosztikai kimenetet. A fájl korlátozott diszkrecionális hozzáférés-vezérlési listákat (DACL-eket) biztosít. Az hozzáférés az SQL Server szolgáltatásfiókjára és a sysadmin szerepkör tagjaira korlátozódik. Alapértelmezés szerint a sysadmin szerepkör a Windows BUILTIN\Rendszergazdák csoport és a helyi rendszergazda csoport összes tagját tartalmazza. A DBCC parancs nem hiúsul meg, ha az adatgyűjtési folyamat meghiúsul.
Hibák elhárítása
Ha a DBCC CHECKFILEGROUPbármilyen hibát jelez, javasoljuk, hogy visszaállítsa az adatbázist az adatbázis biztonsági mentéséből. A javítási beállítások nem adhatók meg a DBCC CHECKFILEGROUP.
Ha nincs biztonsági másolat, a megadott javítási beállítással rendelkező DBCC CHECKDB futtatása kijavítja a jelentett hibákat. Ha jelentett hibák jelentkeznek, a lista végén meg van adva a használni kívánt javítási lehetőség. A hibák REPAIR_ALLOW_DATA_LOSS beállítással történő kijavításához előfordulhat, hogy egyes oldalakat, így az adatokat is törölni kell.
Eredményhalmazok
DBCC CHECKFILEGROUP a következő eredményhalmazt adja vissza (az értékek eltérőek lehetnek):
- Kivéve, ha
ESTIMATEONLYvagyNO_INFOMSGSvan megadva. - Az aktuális adatbázis esetében, ha nincs megadva adatbázis, meg van-e adva bármilyen beállítás (
NOINDEXkivételével).
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.
Ha NO_INFOMSGS van megadva, DBCC CHECKFILEGROUP a következőt adja vissza:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Ha ESTIMATEONLY van megadva, DBCC CHECKFILEGROUP ad vissza (az értékek eltérőek lehetnek):
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.
Engedélyek
A sysadmin rögzített kiszolgálói szerepkörben vagy a db_owner rögzített adatbázis-szerepkörben való tagság szükséges.
Példák
Egy. Az ELSŐDLEGES fájlcsoport ellenőrzése az adatbázisban
Az alábbi példa az aktuális adatbázis elsődleges fájlcsoportját ellenőrzi.
DBCC CHECKFILEGROUP;
GO
B. Az AdventureWorks ELSŐDLEGES fájlcsoportjának ellenőrzése nem konklúziós indexek nélkül
Az alábbi példa a AdventureWorks2025 adatbázis elsődleges fájlcsoportját ellenőrzi (a nemclustered indexek kivételével) az elsődleges fájlcsoport azonosítószámának megadásával és a NOINDEXmegadásával.
USE AdventureWorks2022;
GO
DBCC CHECKFILEGROUP (1, NOINDEX);
GO
C. Az ELSŐDLEGES fájlcsoport ellenőrzése beállításokkal
Az alábbi példa ellenőrzi a master adatbázis elsődleges fájlcsoportot, és megadja a ESTIMATEONLYlehetőséget.
USE master;
GO
DBCC CHECKFILEGROUP (1)
WITH ESTIMATEONLY;