gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Controleert de consistentie van de toewijzingsstructuren voor schijfruimte voor een opgegeven database.
Transact-SQL syntaxisconventies
DBCC CHECKALLOC
[
( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
)
[ WITH
{
[ ALL_ERRORMSGS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
}
]
]
De naam of de id van de database waarvoor toewijzing en paginagebruik moeten worden gecontroleerd.
Als dit niet is opgegeven of als 0 is opgegeven, wordt de huidige database gebruikt.
Databasenamen moeten voldoen aan de regels voor id's.
Hiermee geeft u op dat niet-geclusterde indexen voor gebruikerstabellen niet moeten worden gecontroleerd.
NOINDEX
wordt alleen gehandhaafd voor achterwaartse compatibiliteit en heeft geen invloed op DBCC CHECKALLOC
.
Hiermee geeft u op dat DBCC CHECKALLOC
de gevonden fouten herstellen.
database_name moet zich in de modus voor één gebruiker bevinden.
REPAIR_ALLOW_DATA_LOSS
Probeert eventuele gevonden fouten te herstellen. Deze reparaties kunnen leiden tot gegevensverlies.
REPAIR_ALLOW_DATA_LOSS
is de enige optie waarmee toewijzingsfouten kunnen worden hersteld.
REPAIR_FAST
De syntaxis wordt alleen behouden voor compatibiliteit met eerdere versies. Er worden geen herstelacties uitgevoerd.
REPAIR_REBUILD
Niet van toepassing.
Belangrijk
Gebruik de REPARATIE-opties alleen als laatste redmiddel. Als u fouten wilt herstellen, raden we u aan om te herstellen vanuit een back-up. Herstelbewerkingen houden niet rekening met een van de beperkingen die kunnen bestaan in of tussen tabellen. Als de opgegeven tabel betrokken is bij een of meer beperkingen, raden we u aan DBCC CHECKCONSTRAINTS
uit te voeren na een herstelbewerking. Als u REPAIR moet gebruiken, voert u DBCC CHECKDB
uit zonder een reparatieoptie om het herstelniveau te vinden dat moet worden gebruikt. Als u het REPAIR_ALLOW_DATA_LOSS
niveau gebruikt, wordt u aangeraden een back-up van de database te maken voordat u DBCC CHECKDB
uitvoert met deze optie.
Hiermee kunt u opties opgeven.
ALL_ERRORMSGS
Geeft alle foutberichten weer. Alle foutberichten worden standaard weergegeven. Het opgeven of weglaten van deze optie heeft geen effect.
NO_INFOMSGS
Onderdrukt alle informatieve berichten en het rapport van de gebruikte ruimte.
TABLOCK
Zorgt ervoor dat de DBCC-opdracht een exclusieve databasevergrendeling krijgt.
SCHATTING
Geeft de geschatte hoeveelheid tempdb
ruimte weer die nodig is om DBCC CHECKALLOC
uit te voeren wanneer alle andere opties zijn opgegeven.
DBCC CHECKALLOC
controleert de toewijzing van alle pagina's in de database, ongeacht het type pagina of het type object waartoe ze behoren. Ook worden de verschillende interne structuren gevalideerd die worden gebruikt om deze pagina's en de relaties tussen deze pagina's bij te houden.
Als NO_INFOMSGS
niet is opgegeven, verzamelt DBCC CHECKALLOC
informatie over het ruimtegebruik voor alle objecten in de database. Deze informatie wordt samen met eventuele gevonden fouten afgedrukt.
Notitie
De DBCC CHECKALLOC
-functionaliteit is opgenomen in DBCC CHECKDB- en DBCC CHECKFILEGROUP. Dit betekent dat u DBCC CHECKALLOC
niet afzonderlijk van deze instructies hoeft uit te voeren.
DBCC CHECKALLOC
controleert geen FILESTREAM-gegevens. FILESTREAM slaat binaire grote objecten (BLOBS) op in het bestandssysteem.
DBCC CHECKALLOC
maakt gebruik van een momentopname van een interne database om de transactionele consistentie te bieden die nodig is om deze controles uit te voeren. Als er geen momentopname kan worden gemaakt of TABLOCK
is opgegeven, probeert DBCC CHECKALLOC
een exclusieve (X
) vergrendeling op de database te verkrijgen om de vereiste consistentie te verkrijgen.
Notitie
Het uitvoeren van DBCC CHECKALLOC
op tempdb
voert geen controles uit. Dit komt omdat databasemomentopnamen om prestatieredenen niet beschikbaar zijn op tempdb
. Dit betekent dat de vereiste transactionele consistentie niet kan worden verkregen. Stop en start de database-engine om eventuele tempdb
toewijzingsproblemen op te lossen. Met deze actie wordt de tempdb
-database verwijderd en opnieuw gemaakt.
Nadat de opdracht DBCC CHECKALLOC
is voltooid, wordt er een bericht naar het SQL Server-foutenlogboek geschreven. Als de DBCC-opdracht is uitgevoerd, geeft het bericht een geslaagde voltooiing aan en de hoeveelheid tijd die de opdracht heeft uitgevoerd. Als de DBCC-opdracht stopt voordat de controle wordt voltooid vanwege een fout, geeft het bericht aan dat de opdracht is beëindigd, een statuswaarde en de hoeveelheid tijd die de opdracht heeft uitgevoerd. In de volgende tabel worden de statuswaarden vermeld en beschreven die in het bericht kunnen worden opgenomen.
Staat | Beschrijving |
---|---|
0 | Foutnummer 8930 is gegenereerd. Dit geeft een beschadiging van metagegevens aan waardoor de DBCC-opdracht is beëindigd. |
1 | Foutnummer 8967 is gegenereerd. Er is een interne DBCC-fout opgetreden. |
2 | Er is een fout opgetreden tijdens het herstellen van de database in de noodmodus. |
3 | Dit geeft een beschadiging van metagegevens aan waardoor de DBCC-opdracht is beëindigd. |
4 | Er is een schending van assert of toegang gedetecteerd. |
5 | Er is een onbekende fout opgetreden die de DBCC-opdracht heeft beëindigd. |
Er wordt een minidumpbestand (SQLDUMP<nnnn>.txt
) gemaakt in de map SQL Server LOG
wanneer DBCC CHECKALLOC
een beschadigingsfout detecteert. Wanneer de functies voor het verzamelen van functiegebruik en functies voor foutrapportage zijn ingeschakeld voor het exemplaar van SQL Server, wordt het bestand automatisch doorgestuurd naar Microsoft. De verzamelde gegevens worden gebruikt om de functionaliteit van SQL Server te verbeteren.
Het dumpbestand bevat de resultaten van de opdracht DBCC CHECKALLOC
en aanvullende diagnostische uitvoer. Het bestand heeft beperkte discretionaire toegangsbeheerlijsten (DACL's). Toegang is beperkt tot het SQL Server-serviceaccount en leden van de rol sysadmin. De rol sysadmin bevat standaard alle leden van de Windows BUILTIN\Administrators groep en de lokale beheerdersgroep. De DBCC-opdracht mislukt niet als het proces voor het verzamelen van gegevens mislukt.
Als DBCC CHECKALLOC
fouten rapporteert, raden we u aan om de database te herstellen vanuit de databaseback-up in plaats van een herstelbewerking uit te voeren. Als er geen back-up bestaat, kan het uitvoeren van een herstel de gemelde fouten corrigeren; Het corrigeren van de fouten kan echter vereisen dat sommige pagina's en daarom gegevens worden verwijderd.
Een reparatie kan worden uitgevoerd in een gebruikerstransactie. Hierdoor kunnen wijzigingen worden teruggedraaid. Als wijzigingen worden teruggedraaid, bevat de database nog steeds fouten en moet deze worden hersteld vanuit een back-up. Nadat de reparaties zijn voltooid, maakt u een back-up van de database.
In de volgende tabellen worden de gegevens beschreven die DBCC CHECKALLOC
retourneert.
Item | Beschrijving |
---|---|
FirstIAM- | Alleen intern gebruik. |
root- | Alleen intern gebruik. |
Dpages | Aantal gegevenspagina's. |
Pagina's die worden gebruikt | Toegewezen pagina's. |
Toegewezen gebieden | Gebieden die aan het object zijn toegewezen. Als gemengde toewijzingspagina's worden gebruikt, zijn er mogelijk pagina's toegewezen zonder gebieden. |
DBCC CHECKALLOC
rapporteert ook een toewijzingsoverzicht voor elke index en partitie in elk bestand. In deze samenvatting wordt de verdeling van de gegevens beschreven.
Item | Beschrijving |
---|---|
Gereserveerde pagina's | Pagina's die zijn toegewezen aan de index en de ongebruikte pagina's in toegewezen gebieden. |
Gebruikte pagina's | Pagina's die door de index worden toegewezen en gebruikt. |
Partitie-id | Alleen intern gebruik. |
Id van alloc-eenheid | Alleen intern gebruik. |
Gegevens in rij | Pagina's bevatten index- of heapgegevens. |
LOB-gegevens | Pagina's bevatten varchar(max), nvarchar(max), varbinary(max), tekst, ntext, xml-en afbeelding gegevens. |
Rij-overloopgegevens | Pagina's bevatten kolomgegevens met een variabele lengte die buiten de rij zijn gepusht. |
DBCC CHECKALLOC
retourneert de volgende resultatenset (waarden kunnen variëren), behalve wanneer ESTIMATEONLY
of NO_INFOMSGS
is opgegeven.
DBCC results for 'master'.
***************************************************************
Table sysobjects Object ID 1.
Index ID 1 FirstIAM (1:11) Root (1:12) Dpages 22.
Index ID 1. 24 pages used in 5 dedicated extents.
Index ID 2 FirstIAM (1:1368) Root (1:1362) Dpages 10.
Index ID 2. 12 pages used in 2 dedicated extents.
Index ID 3 FirstIAM (1:1392) Root (1:1408) Dpages 4.
Index ID 3. 6 pages used in 0 dedicated extents.
Total number of extents is 7.
***************************************************************
'...'
***************************************************************
Table spt_server_info Object ID 1938105945.
Index ID 1 FirstIAM (1:520) Root (1:508) Dpages 1.
Index ID 1. 3 pages used in 0 dedicated extents.
Total number of extents is 0.
***************************************************************
Processed 52 entries in sysindexes for database ID 1.
File 1. Number of extents = 210, used pages = 1126, reserved pages = 1280.
File 1 (number of mixed extents = 73, mixed pages = 184).
Object ID 1, Index ID 0, data extents 5, pages 24, mixed extent pages 9.
'...'
Object ID 1938105945, Index ID 0, data extents 0, pages 3, mixed extent pages 3.
Total number of extents = 210, used pages = 1126, reserved pages = 1280 in this database.
(number of mixed extents = 73, mixed pages = 184) in this database.
CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'.
DBCC results for 'master'.
***************************************************************
Table sys.sysrowsetcolumns Object ID 4.
Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). FirstIAM (1:98). Root (1:94). Dpages 7.
Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). 9 pages used in 1 dedicated extents.
Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). FirstIAM (0:0). Root (0:0). Dpages 0.
Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). 0 pages used in 0 dedicated extents.
Total number of extents is 1.
...
***************************************************************
Processed 201 entries in system catalog for database ID 1.
File 1. Number of extents = 44, used pages = 300, reserved pages = 345.
File 1 (number of mixed extents = 29, mixed pages = 225).
Object ID 4, index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data), data extents 1, pages 9, mixed extent pages 8.
Object ID 5, index ID 1, partition ID 327680, alloc unit ID 327680 (type In-row data), data extents 0, pages 2, mixed extent pages 2.
Object ID 7, index ID 1, partition ID 458752, alloc unit ID 458752 (type In-row data), data extents 0, pages 5, mixed extent pages 5.
Object ID 8, index ID 0, partition ID 524288, alloc unit ID 524288 (type In-row data), data extents 0, pages 2, mixed extent pages 2.
Object ID 13, index ID 1, partition ID 851968, alloc unit ID 851968 (type In-row data), data extents 1, pages 9, mixed extent pages 8.
Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), data extents 0, pages 2, mixed extent pages 2.
Object ID 26, index ID 1, partition ID 281474978414592, alloc unit ID 1703937 (type In-row data), data extents 0, pages 3, mixed extent pages 3.
Object ID 27, index ID 1, partition ID 281474978480128, alloc unit ID 1769473 (type In-row data), data extents 0, pages 3, mixed extent pages 3.
Object ID 27, index ID 2, partition ID 562949955190784, alloc unit ID 1769474 (type In-row data), index extents 0, pages 3, mixed extent pages 3.
...
Object ID 1179151246, index ID 1, partition ID 72057594038845440, alloc unit ID 13435136 (type In-row data), data extents 2, pages 18, mixed extent pages 8.
Object ID 1179151246, index ID 2, partition ID 72057594038910976, alloc unit ID 13566208 (type In-row data), index extents 1, pages 16, mixed extent pages 8.
Object ID 1911677858, index ID 0, partition ID 72057594039631872, alloc unit ID 15073536 (type In-row data), data extents 0, pages 2, mixed extent pages 2.
Total number of extents = 41, used pages = 289, reserved pages = 323 in this database.
(number of mixed extents = 27, mixed pages = 211) in this database.
CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Wanneer ESTIMATEONLY
is opgegeven, retourneert DBCC CHECKALLOC
de volgende resultatenset.
Estimated TEMPDB space needed for CHECKALLOC (KB)
-------------------------------------------------
34
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Vereist lidmaatschap van de vaste serverfunctie sysadmin of de db_owner vaste databaserol.
In het volgende voorbeeld wordt DBCC CHECKALLOC
uitgevoerd voor de huidige database en voor de AdventureWorks2022
-database.
-- Check the current database.
DBCC CHECKALLOC;
GO
-- Check the AdventureWorks2022 database.
DBCC CHECKALLOC (AdventureWorks2022);
GO
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreert