Megosztás a következőn keresztül:


DBCC (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-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 CHECKALLOC
  • DBCC CHECKCATALOG
  • DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC 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 master adatbá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ás ALTER DATABASE haszná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 DATABASE segí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 TABLOCK opció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

Validációs állítások

Karbantartási nyilatkozatok

Egyéb nyilatkozatok