DBCC (Transact-SQL)
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Det Transact-SQL programmeringsspråket innehåller DBCC-instruktioner som fungerar som databaskonsolkommandon för SQL Server.
Kommandoinstruktionerna för databaskonsolen grupperas i följande kategorier.
Kommandokategori | Utföra |
---|---|
Underhåll | Underhållsaktiviteter för en databas, ett index eller en filgrupp. |
Diverse | Diverse uppgifter som att aktivera spårningsflaggor eller ta bort en DLL från minnet. |
Informativt | Uppgifter som samlar in och visar olika typer av information. |
Validering | Valideringsåtgärder på en databas, tabell, index, katalog, filgrupp eller allokering av databassidor. |
DBCC-kommandon tar indataparametrar och returnerar värden. Alla DBCC-kommandoparametrar kan acceptera både Unicode- och DBCS-literaler.
Databasögonblicksbildanvändning i DBCC
Följande DBCC-kommandon fungerar på en intern skrivskyddad databasögonblicksbild som databasmotorn skapar. Ögonblicksbilden förhindrar blockerings- och samtidighetsproblem när dessa kommandon körs. Mer information finns i Database Snapshots (SQL Server).
DBCC CHECKALLOC
DBCC CHECKCATALOG
DBCC CHECKDB
DBCC CHECKFILEGROUP
DBCC CHECKTABLE
När du kör ett av dessa DBCC-kommandon skapar databasmotorn en ögonblicksbild av databasen och ger den ett transaktionsmässigt konsekvent tillstånd. DBCC-kommandot kör sedan kontrollerna mot den här ögonblicksbilden. När DBCC-kommandot har slutförts tas den här ögonblicksbilden bort.
Ibland krävs ingen intern databasögonblicksbild eller kan inte skapas. När detta inträffar körs DBCC-kommandot mot den faktiska databasen. Om databasen är online använder DBCC-kommandot tabelllåsning för att säkerställa konsekvensen för de objekt som den kontrollerar. Det här beteendet är detsamma som om alternativet WITH TABLOCK
angavs.
En intern databasögonblicksbild skapas inte när ett DBCC-kommando körs:
- Mot den
master
databasen och instansen av SQL Server körs i enanvändarläge. - Mot en annan databas än
master
, men databasen har försatts i enanvändarläge med hjälp av instruktionenALTER DATABASE
. - Mot en skrivskyddad databas.
- Mot en databas som har angetts i nödläge med hjälp av instruktionen
ALTER DATABASE
. - Mot
tempdb
. I det här fallet kan en ögonblicksbild av databasen inte skapas på grund av interna begränsningar. - Använd alternativet
WITH TABLOCK
. I det här fallet respekterar DBCC begäran genom att inte skapa en ögonblicksbild av databasen.
DBCC-kommandona använder tabelllås i stället för de interna databasögonblicksbilderna när kommandot körs mot följande:
- En skrivskyddad filgrupp
- Ett FAT-filsystem
- En volym som inte stöder namngivna strömmar
- En volym som inte stöder alternativa strömmar
Not
Om du försöker köra DBCC CHECKALLOC
, eller motsvarande del av DBCC CHECKDB
, med hjälp av alternativet WITH TABLOCK
krävs ett databasexkluderande lås (X
). Det här databaslåset kan inte ställas in på tempdb
eller master
och kommer förmodligen att misslyckas på alla andra databaser.
Not
DBCC CHECKDB
misslyckas när den körs mot master
om det inte går att skapa en intern databasögonblicksbild.
Förloppsrapportering för DBCC-kommandon
Katalogvyn sys.dm_exec_requests
innehåller information om förloppet och den aktuella fasen av körningen av kommandona DBCC CHECKDB
, CHECKFILEGROUP
och CHECKTABLE
. Kolumnen percent_complete
anger procent färdigt kommando, och kolumnen command
rapporterar den aktuella fasen av körningen av kommandot.
Definitionen av en förloppsenhet beror på den aktuella fasen av körningen av DBCC-kommandot. Ibland rapporteras förloppet på en databassidas kornighet, i andra faser rapporteras det vid kornigheten för en enskild databas eller allokeringsreparation. I följande tabell beskrivs varje fas av körningen och den kornighet där kommandot rapporterar förlopp.
Körningsfas | Beskrivning | Förloppsrapporteringskornighet |
---|---|---|
DBCC TABLE CHECK |
Den logiska och fysiska konsekvensen för objekten i databasen kontrolleras under den här fasen. | Förlopp rapporteras på databassidans nivå. Förloppsrapporteringsvärdet uppdateras för varje 1 000 databassidor som kontrolleras. |
DBCC TABLE REPAIR |
Databasreparationer utförs under den här fasen om REPAIR_FAST , REPAIR_REBUILD eller REPAIR_ALLOW_DATA_LOSS anges och det finns objektfel som måste repareras. |
Förlopp som rapporterats på den enskilda reparationsnivån. Räknaren uppdateras för varje reparation som har slutförts. |
DBCC ALLOC CHECK |
Allokeringsstrukturer i databasen kontrolleras under den här fasen. Obs! DBCC CHECKALLOC utför samma kontroller. |
Förloppet rapporteras inte |
DBCC ALLOC REPAIR |
Databasreparationer utförs under den här fasen om REPAIR_FAST , REPAIR_REBUILD eller REPAIR_ALLOW_DATA_LOSS anges och det finns allokeringsfel som måste repareras. |
Förloppet rapporteras inte. |
DBCC SYS CHECK |
Databassystemtabeller kontrolleras under den här fasen. | Förlopp rapporteras på databassidans nivå. Förloppsrapporteringsvärdet uppdateras för varje 1 000 databassidor som kontrolleras. |
DBCC SYS REPAIR |
Databasreparationer utförs under den här fasen om REPAIR_FAST , REPAIR_REBUILD eller REPAIR_ALLOW_DATA_LOSS har angetts och det finns systemtabellfel som måste repareras. |
Förlopp som rapporterats på den enskilda reparationsnivån. Räknaren uppdateras för varje reparation som har slutförts. |
DBCC SSB CHECK |
SQL Server Service Broker-objekt kontrolleras under den här fasen. Obs! Den här fasen körs inte när DBCC CHECKTABLE körs. |
Förloppet rapporteras inte. |
DBCC CHECKCATALOG |
Konsekvensen för databaskataloger kontrolleras under den här fasen. Obs! Den här fasen körs inte när DBCC CHECKTABLE körs. |
Förloppet rapporteras inte. |
DBCC IVIEW CHECK |
Den logiska konsekvensen för alla indexerade vyer som finns i databasen kontrolleras under den här fasen. | Förlopp som rapporteras på nivån för den enskilda databasvy som kontrolleras. |
Informationsinstruktioner
- DBCC INPUTBUFFER
- DBCC SHOWCONTIG
- DBCC OPENTRAN
- DBCC OUTPUTBUFFER
- DBCC PROCCACHE
- DBCC-SHOW_STATISTICS
- DBCC SQLPERF
- DBCC TRACESTATUS
- DBCC USEROPTIONS
Valideringsuttryck
- DBCC CHECKALLOC
- DBCC CHECKCATALOG
- DBCC CHECKCONSTRAINTS
- DBCC CHECKDB
- DBCC CHECKFILEGROUP
- DBCC CHECKIDENT
- DBCC CHECKTABLE
Underhållsinstruktioner
- DBCC CLEANTABLE
- DBCC DBREINDEX
- DBCC DROPCLEANBUFFERS
- DBCC FREEPROCCACHE
- DBCC INDEXDEFRAG
- DBCC SHRINKDATABASE
- DBCC SHRINKFILE
- DBCC UPDATEUSAGE
Diverse instruktioner
- DBCC dllname (FREE)
- DBCC HJÄLP
- DBCC FLUSHAUTHCACHE
- DBCC TRACEOFF-
- DBCC FREESESSIONCACHE
- DBCC TRACEON
- DBCC FREESYSTEMCACHE
- DBCC CLONEDATABASE (gäller för: SQL Server 2014 (12.x) Service Pack 2 och senare versioner.)