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


DBCC UPDATEUSAGE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Jelentések és javítások az oldalak és a sorok számának pontatlanságairól a katalógusnézetekben. Ezek a pontatlanságok a sp_spaceused rendszer által tárolt eljárás által visszaadott helytelen helyhasználati jelentéseket okozhatják.

Transact-SQL szintaxis konvenciói

Szintaxis

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

Érvek

| database_namedatabase_id | 0

Annak az adatbázisnak a neve vagy azonosítója, amelynek jelentésére és a helyhasználati statisztikák javítására szolgál. Ha 0 van megadva, a rendszer az aktuális adatbázist használja. Az adatbázisneveknek meg kell felelniük azonosítókszabályainak.

table_name | table_id | view_name | view_id

Annak a táblázatnak vagy indexelt nézetnek a neve vagy azonosítója, amelynek jelentésére és a térhasználati statisztikák javítására szolgál. A tábla- és nézetneveknek meg kell felelniük az azonosítókra vonatkozó szabályoknak.

index_id | index_name

A használni kívánt index azonosítója vagy neve. Ha nincs megadva, az utasítás feldolgozza a megadott tábla vagy nézet összes indexét.

VAL

Lehetővé teszi a beállítások megadását.

NO_INFOMSGS

Letiltja az összes tájékoztató üzenetet.

COUNT_ROWS

Megadja, hogy a sorszám oszlop frissül-e a tábla vagy nézetben lévő sorok számának aktuális számával.

Megjegyzések

DBCC UPDATEUSAGE kijavítja a táblák vagy indexek egyes partícióinak sorait, használt lapjait, fenntartott lapjait, levéloldalait és adatoldalainak számát. Ha nincsenek pontatlanságok a rendszertáblákban, DBCC UPDATEUSAGE nem ad vissza adatokat. Ha pontatlanságok találhatók és javítva vannak, és a WITH NO_INFOMSGS nincs használatban, DBCC UPDATEUSAGE a rendszertáblákban frissített sorokat és oszlopokat adja vissza.

DBCC CHECKDB javítottuk annak észlelésére, hogy az oldal- vagy sorszám mikor válik negatívvá. Ha észleli, a DBCC CHECKDB kimenet figyelmeztetést és javaslatot tartalmaz a DBCC UPDATEUSAGE futtatására a probléma megoldásához.

Ajánlott eljárások

A következőket javasoljuk:

  • Ne futtasson rutinszerűen DBCC UPDATEUSAGE, mivel az SQL Server a legtöbb esetben fenntartja a metaadatokat. DBCC UPDATEUSAGE szükség szerint kell futtatni, például ha azt gyanítja, hogy helytelen értékeket ad vissza sp_spaceused. DBCC UPDATEUSAGE nagy táblákon vagy adatbázisokon való futtatás eltarthat egy ideig.
  • Érdemes lehet DBCC UPDATEUSAGE rutinszerűen (például hetente) futtatni, ha az adatbázis gyakran módosítja az adatdefiníciós nyelvet (DDL), például CREATE, ALTER vagy DROP utasítást.

Eredményhalmazok

DBCC UPDATEUSAGE eredménye (az értékek eltérőek lehetnek):

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

Engedélyek

A sysadmin rögzített kiszolgálói szerepkörben vagy a db_owner rögzített adatbázis-szerepkörben való tagság szükséges.

Példák

Egy. Az aktuális adatbázis összes objektumának lap- vagy sorszámának vagy mindkettőjének frissítése

Az alábbi példa az adatbázis nevének 0 adja meg, és DBCC UPDATEUSAGE az aktuális adatbázis frissített oldal- vagy sorszámadatait jelenti.

DBCC UPDATEUSAGE (0);
GO

B. Az AdventureWorks oldal- vagy sorszámának vagy mindkettőnek frissítése és az információs üzenetek letiltása

Az alábbi példa AdventureWorks2025 adja meg az adatbázis neveként, és letiltja az összes tájékoztató üzenetet.

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Az Alkalmazott tábla oldal- vagy sorszámának frissítése vagy mindkettő

Az alábbi példa a Employee adatbázis AdventureWorks2025 táblájának frissített lap- vagy sorszámadatait ismerteti.

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

D. Egy tábla adott indexének lap- vagy sorszámának vagy mindkettőnek frissítése

Az alábbi példa a IX_Employee_ManagerID adja meg indexnévként.

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

Lásd még: