Delen via


DBCC UPDATEUSAGE (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Rapporteert en corrigeert pagina's en onnauwkeurigheden in de catalogusweergaven. Deze onnauwkeurigheden kunnen leiden tot onjuiste ruimtegebruiksrapporten die door de sp_spaceused systeembewaarde procedure worden teruggegeven.

Transact-SQL syntaxis-conventies

Syntaxis

DBCC UPDATEUSAGE
(   { database_name | database_id | 0 }
    [ , { table_name | table_id | view_name | view_id }
    [ , { index_name | index_id } ] ]
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]

Arguments

| database_namedatabase_id | 0

De naam of ID van de database waarvoor ruimtegebruikstatistieken worden gerapporteerd en gecorrigeerd. Als 0 is opgegeven, wordt de huidige database gebruikt. Databasenamen moeten voldoen aan de regels voor id's.

table_name | table_id | view_name | view_id

De naam of ID van de tabel of geïndexeerde weergave waarvoor ruimtegebruiksstatistieken worden gerapporteerd en gecorrigeerd. Tabel- en weergavenamen moeten voldoen aan de regels voor identificaties.

index_id | index_name

De ID of naam van de index die gebruikt moet worden. Indien niet gespecificeerd, verwerkt de instructie alle indexen voor de opgegeven tabel of weergave.

WITH

Maakt het mogelijk om opties te specificeren.

NO_INFOMSGS

Onderdrukt alle informatieve berichten.

COUNT_ROWS

Geeft aan dat de kolom met het aantal rijen wordt bijgewerkt met het huidige aantal rijen in de tabel of weergave.

Opmerkingen

DBCC UPDATEUSAGE corrigeert de rijen, gebruikte pagina's, gereserveerde pagina's, bladpagina's en het aantal gegevenspagina's voor elke partitie in een tabel of index. Als er geen onnauwkeurigheden in de systeemtabellen zijn, DBCC UPDATEUSAGE geeft geen data terug. Als onnauwkeurigheden worden gevonden en gecorrigeerd en MET NO_INFOMSGS niet wordt gebruikt, DBCC UPDATEUSAGE wordt de rijen en kolommen die in de systeemtabellen worden bijgewerkt teruggegeven.

DBCC CHECKDB is verbeterd om te detecteren wanneer pagina- of rijtellingen negatief worden. Wanneer het wordt gedetecteerd, bevat de DBCC CHECKDB uitvoer een waarschuwing en een aanbeveling om het probleem aan te DBCC UPDATEUSAGE pakken.

Beste praktijken

We raden het volgende aan:

  • Voer niet routinematig uit DBCC UPDATEUSAGE , want SQL Server onderhoudt de metadata onder de meeste omstandigheden. DBCC UPDATEUSAGE moet op basis van behoefte worden uitgevoerd, bijvoorbeeld wanneer u vermoedt dat onjuiste waarden worden teruggegeven door sp_spaceused. DBCC UPDATEUSAGE Het kan enige tijd kosten om op grote tabellen of databases te draaien.
  • Overweeg routinematig (bijvoorbeeld wekelijks) te draaien DBCC UPDATEUSAGE alleen als de database vaak Data Definition Language (DDL) wijzigingen ondergaat, zoals CREATE, ALTER of DROP-instructies.

Resultatensets

DBCC UPDATEUSAGE rendementen (waarden kunnen variëren):

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Permissions

Vereist lidmaatschap van de sysadmin vaste serverfunctie of de db_owner vaste databaserol.

Voorbeelden

Eén. Updatepagina- of rijtellingen, of beide, voor alle objecten in de huidige database

Het volgende voorbeeld specificeert 0 voor de databasenaam en DBCC UPDATEUSAGE rapporten bijgewerkte pagina- of rijaantalinformatie voor de huidige database.

DBCC UPDATEUSAGE (0);
GO

B. Updatepagina- of rijtellingen of beide voor AdventureWorks, en het onderdrukken van informatieve berichten

Het volgende voorbeeld specificeert AdventureWorks2025 als databasenaam en onderdrukt alle informatieve berichten.

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Updatepagina- of rijtellingen, of beide, voor de Medewerkerstabel

Het volgende voorbeeld geeft bijgewerkte pagina- of rijaantalinformatie voor de Employee tabel in de AdventureWorks2025 database.

DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee');
GO

D. Updatepagina- of rijtellingen of beide voor een specifieke index in een tabel

Het volgende voorbeeld specificeert IX_Employee_ManagerID als indexnaam.

DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO

Zie ook