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
SQL-adatbázis a Microsoft Fabricben
A Transact-SQL programozási nyelv DBCC utasításokat biztosít, amelyek adatbázis-konzolparancsként működnek SQL Server számára.
Az adatbázis konzol parancsutasításai a következő kategóriákba vannak sorolva.
| Parancsnoki kategória | Előad |
|---|---|
| Maintenance | Karbani feladatok adatbázison, indexen vagy fájlcsoporton. |
| Miscellaneous | Különféle feladatok, mint például a trace flagok engedélyezése vagy egy DLL eltávolítása a memóriából. |
| Informational | Olyan feladatok, amelyek különféle információkat gyűjtenek és jelenítik meg. |
| Validation | Validációs műveletek adatbázison, táblán, indexen, katalógusban, fájlcsoporton vagy adatbázis oldalak allokálásán. |
A DBCC parancsok bemeneti paramétereket vesznek fel és értékeket adnak vissza. Minden DBCC parancsparaméter elfogadja mind az Unicode, mind a DBCS literálokat.
DBCC belső adatbázis snapshot használata
A következő DBCC parancsok egy belső csak olvasható adatbázis-pillanatképen működnek, amelyet az Adatbázis Motor hoz létre. A snapshot megakadályozza a blokkolási és párhuzamos problémákat, amikor ezeket a parancsokat végrehajtják. További információért lásd: Database Snapshots (SQL Server).
DBCC CHECKALLOCDBCC CHECKCATALOGDBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKTABLE
Amikor végrehajtasz valamelyik DBCC parancsot, az Database Engine létrehoz egy adatbázis-pillanatképet, és tranzakcióilag konzisztens állapotba hozza. A DBCC parancs majd lefuttatja a próbákat ezen a pillanatképen ellen. A DBCC parancs befejezése után ez a pillanatkép eltűnik.
Néha belső adatbázis-snapshot nem szükséges, vagy nem lehet létrehozni. Amikor ez megtörténik, a DBCC parancs a tényleges adatbázis ellen fut le. Ha az adatbázis online van, a DBCC parancs táblázat-zárolást használ, hogy biztosítsa az ellenőrzött objektumok konzisztenciáját. Ez a viselkedés ugyanaz, mintha az WITH TABLOCK opciót megadnák.
Belső adatbázis-snapshot nem jön létre, amikor DBCC parancsot futtatnak:
- Az
masteradatbázis ellen, és az SQL Server példánya egyfelhasználós módban fut. - Egy másik adatbázis ellen, de
masteraz adatbázis egyfelhasználós módba került az utasításALTER DATABASEhasználatával. - Egy csak olvasható adatbázis ellen.
- Egy olyan adatbázis ellen, amelyet vészhelyzeti módban állítottak be az állítás
ALTER DATABASEsegítségével. - Ellene
tempdb. Ebben az esetben adatbázis-pillanatképet nem lehet létrehozni belső korlátozások miatt. - Használva az
WITH TABLOCKopciót. Ebben az esetben a DBCC tiszteletben tartja a kérést azzal, hogy nem hoz létre adatbázis-pillanatképet.
A DBCC parancsok táblázatzárokat használnak a belső adatbázis-pillanatképek helyett, amikor a parancsot a következők ellen hajtják végre:
- Csak olvasható fájlcsoport
- Egy FAT-fájlrendszer
- Egy kötet, amely nem támogatja a nevelt streameket
- Egy olyan kötet, ami nem támogatja az alternatív streameket
Megjegyzés:
A , vagy annak DBCC CHECKDBmegfelelő részének futtatásához DBCC CHECKALLOCWITH TABLOCK az opcióval adatbázis-exkluzív (X) zárolást igényel. Ez az adatbázis-zárolás nem állítható be vagy tempdbmaster valószínűleg minden más adatbázisban meghibásodik.
Megjegyzés:
DBCC CHECKDB akkor bukik el, ha ellen futtatják master , ha belső adatbázis-snapshot nem hozható létre.
DBCC parancsok előrehaladási jelentése
A sys.dm_exec_requests katalógus nézet információkat tartalmaz a , CHECKFILEGROUP, és CHECKTABLE parancsok előrehaladásáról és a jelenlegi végrehajtási DBCC CHECKDBfázisáról. Az percent_complete oszlop a parancs teljesítésének százalékát mutatja, az command oszlop pedig a parancs végrehajtásának aktuális fázisát jelzi.
A haladás egységének meghatározása a DBCC parancs aktuális végrehajtási szakaszától függ. Néha a haladást egy adatbázis oldalának részletessége alapján jelentik, más fázisokban pedig egyetlen adatbázis vagy allokációs javítás részletessége alapján jelentik. Az alábbi táblázat bemutatja a végrehajtás minden fázisát, valamint azt a részletességet, amellyel a parancs jelentést tesz a haladásról.
| Végrehajtási fázis | Description | Előrehaladási jelentés részletessége |
|---|---|---|
DBCC TABLE CHECK |
Az adatbázisban szereplő objektumok logikai és fizikai konzisztenciáját ebben a fázisban ellenőrzik. | Előrehaladás jelentése az adatbázis oldali szintjén történik. Az előrehaladási jelentési értéket minden egyes 1000 ellenőrzött adatbázis oldal esetén frissítik. |
DBCC TABLE REPAIR |
Az adatbázis javítása ebben a fázisban történik, ha REPAIR_FAST, REPAIR_REBUILD, vagy REPAIR_ALLOW_DATA_LOSS meg van jelölve, és objektumhibákat kell javítani. |
A javítási szint egyéni szinten jelent előrehaladást. A számláló minden befejezett javítás után frissül. |
DBCC ALLOC CHECK |
Az adatbázis allokációs struktúráit ebben a fázisban ellenőrzik. Jegyzet: DBCC CHECKALLOC ugyanazokat a próbákat végzi. |
Előrehaladást nem jelentenek |
DBCC ALLOC REPAIR |
Az adatbázis-javításokat ebben a fázisban végzik, ha REPAIR_FAST, REPAIR_REBUILD, vagy REPAIR_ALLOW_DATA_LOSS meg van jelölve, és vannak allokációs hibák, amelyeket javítani kell. |
Előrehaladásról nem számolnak be. |
DBCC SYS CHECK |
Ebben a fázisban az adatbázis-rendszer táblázatokat ellenőrzik. | Előrehaladás jelentése az adatbázis oldali szintjén történik. Az előrehaladási jelentési értéket minden 1000 ellenőrzött adatbázis oldal után frissítik. |
DBCC SYS REPAIR |
Ebben a fázisban végezik az adatbázis-javításokat, ha REPAIR_FAST, REPAIR_REBUILD, vagy REPAIR_ALLOW_DATA_LOSS meg van jelölve, és rendszertábla-hibákat kell javítani. |
A javítási szint egyéni szinten jelent előrehaladást. A számláló minden befejezett javítás után frissül. |
DBCC SSB CHECK |
Az SQL Server Service Broker objektumait ebben a fázisban ellenőrzik. Jegyzet: Ez a fázis nem történik meg, amikor DBCC CHECKTABLE végrehajtják. |
Előrehaladásról nem számolnak be. |
DBCC CHECKCATALOG |
Az adatbázis-katalógusok konzisztenciáját ebben a fázisban ellenőrzik. Megjegyzés: Ez a fázis nem történik végrehajtáskor. DBCC CHECKTABLE |
Előrehaladásról nem számolnak be. |
DBCC IVIEW CHECK |
Ebben a fázisban ellenőrzik az adatbázisban található indexelt nézetek logikai konzisztenciáját. | Az előrehaladás az ellenőrizendő adatbázis-nézet szintjén jelent. |
Tájékoztató nyilatkozatok
- DBCC INPUTBUFFER
- DBCC SHOWCONTIG
- DBCC OPENTRAN
- DBCC KIMENETPUFFER
- DBCC PROCCACHE
- DBCC SHOW_STATISTICS
- DBCC SQLPERF
- DBCC TRACESTATUS
- DBCC USEROPTIONS
Validációs állítások
- DBCC CHECKALLOC
- DBCC CHECKCATALOG
- DBCC CHECKCONSTRAINTS
- DBCC CHECKDB
- DBCC CHECKFILEGROUP
- DBCC CHECKIDENT
- DBCC ELLENŐRZŐTÁBLA
Karbantartási nyilatkozatok
- DBCC CLEANTABLE
- DBCC DBREINDEX
- DBCC DROPCLEANBUFFERS
- DBCC FREEPROCCACHE
- DBCC INDEXDEFRAG
- DBCC SHRINKDATABASE
- DBCC SHRINKFILE
- DBCC UPDATEUSAGE
Egyéb nyilatkozatok
- DBCC dllname (INGYENES)
- DBCC SEGÍTSÉG
- DBCC FLUSHAUTHCACHE
- DBCC TRACEOFF
- DBCC FREESESSIONCACHE
- DBCC TRACEON
- DBCC FREESYSTEMCACHE
- DBCC CLONEDATABASE (Alkalmazható: SQL Server 2014 (12.x) Service Pack 2 és újabb verziók.)