DBCC UPDATEUSAGE (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Rapporterar och rättar sidor och radräkningsfel i katalogvisningarna. Dessa felaktigheter kan orsaka felaktiga rapporter om utrymmesanvändning som returneras av systemets sp_spaceused lagrade procedur.

Transact-SQL syntaxkonventioner

Syntax

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

Namnet eller ID:t på databasen för att rapportera och korrigera statistik om utrymmesanvändning. Om 0 anges används den aktuella databasen. Databasnamn måste följa reglerna för identifierare.

table_name | table_id | view_name | view_id

Namnet eller ID:t på tabellen eller den indexerade vyn för att rapportera och korrigera statistik över utrymmesanvändning. Tabell- och vynamn måste följa reglerna för identifierare.

index_id | index_name

ID:t eller namnet på indexet som ska användas. Om det inte specificeras bearbetar satsen alla index för den angivna tabellen eller vyn.

WITH

Tillåter att alternativ kan specificeras.

NO_INFOMSGS

Undertrycker alla informationsmeddelanden.

COUNT_ROWS

Specificerar att kolumnen för radantal uppdateras med den aktuella räkningen av antalet rader i tabellen eller vyn.

Anmärkningar

DBCC UPDATEUSAGE korrigerar rader, använda sidor, reserverade sidor, bladsidor och data-sidantal för varje partition i en tabell eller index. Om det inte finns några felaktigheter i systemtabellerna returneras DBCC UPDATEUSAGE ingen data. Om felaktigheter hittas och rättas och MED NO_INFOMSGS inte används, DBCC UPDATEUSAGE returneras rader och kolumner som uppdateras i systemtabellerna.

DBCC CHECKDB har förbättrats för att upptäcka när sid- eller radräkningar blir negativa. När den upptäcks DBCC CHECKDB innehåller utgången en varning och en rekommendation att köra DBCC UPDATEUSAGE för att åtgärda problemet.

Metodtips

Vi rekommenderar följande:

  • Kör DBCC UPDATEUSAGE inte rutinmässigt, eftersom SQL Server i de flesta fall hanterar metadatan. DBCC UPDATEUSAGE bör köras vid behov, till exempel när du misstänker att felaktiga värden returneras av sp_spaceused. DBCC UPDATEUSAGE Det kan ta tid att köra på stora tabeller eller databaser.
  • Överväg att köra DBCC UPDATEUSAGE rutinmässigt (till exempel veckovis) endast om databasen genomgår frekventa Data Definition Language (DDL)-ändringar, såsom CREATE, ALTER eller DROP-satser.

Resultatuppsättningar

DBCC UPDATEUSAGE avkastning (värden kan variera):

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

Permissions

Kräver medlemskap i sysadmin fast serverroll eller db_owner fast databasroll.

Examples

A. Uppdateringssida eller radräkningar eller båda för alla objekt i den aktuella databasen

Följande exempel specificerar 0 för databasens namn och DBCC UPDATEUSAGE rapporterar uppdaterad sid- eller radräkningsinformation för den aktuella databasen.

DBCC UPDATEUSAGE (0);
GO

B. Uppdateringssida eller radräkning eller båda för AdventureWorks, samt undertryckning av informationsmeddelanden

Följande exempel specificerar AdventureWorks2025 som databasnamn och undertrycker alla informationsmeddelanden.

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Uppdatera sida eller radräkningar eller båda för tabellen Anställda

Följande exempel rapporterar uppdaterad sid- eller radräkningsinformation för Employee tabellen i databasen AdventureWorks2025 .

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

D. Uppdatera sid- eller radräkningar eller båda för ett specifikt index i en tabell

Följande exempel specificerar IX_Employee_ManagerID som indexnamn.

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

Se även