Sdílet prostřednictvím


DBCC UPDATEUSAGE (Transact-SQL)

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance

Sestavy a opravují nepřesnosti stránek a řádků v zobrazeních katalogu. Tyto nepřesnosti mohou způsobit nesprávné sestavy využití místa vrácené uloženou procedurou sp_spaceused systému.

Transact-SQL konvence syntaxe

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 ] ]

Argumenty

database_name | database_id | 0

Název nebo ID databáze, pro kterou chcete hlásit a opravit statistiku využití místa. Pokud je zadána hodnota 0, použije se aktuální databáze. Názvy databází musí splňovat pravidla pro identifikátory .

table_name | table_id | view_name | view_id

Název nebo ID tabulky nebo indexovaného zobrazení, pro které se mají hlásit a opravit statistiky využití místa. Názvy tabulek a zobrazení musí splňovat pravidla pro identifikátory.

index_id | index_name

ID nebo název indexu, které se mají použít. Pokud není zadaný, příkaz zpracuje všechny indexy pro zadanou tabulku nebo zobrazení.

S

Umožňuje zadat možnosti.

NO_INFOMSGS

Potlačí všechny informační zprávy.

COUNT_ROWS

Určuje, že sloupec počtu řádků se aktualizuje aktuálním počtem řádků v tabulce nebo zobrazení.

Poznámky

DBCC UPDATEUSAGE opraví řádky, použité stránky, rezervované stránky, listové stránky a počty datových stránek pro každý oddíl tabulky nebo indexu. Pokud nejsou v systémových tabulkách žádné nepřesnosti, DBCC UPDATEUSAGE nevrátí žádná data. Pokud jsou nalezeny nepřesnosti a opraveny a funkce WITH NO_INFOMSGS se nepoužívá, DBCC UPDATEUSAGE vrátí řádky a sloupce, které se aktualizují v systémových tabulkách.

DBCC CHECKDB byla vylepšena, aby se zjistilo, kdy se počet stránek nebo řádků záporně záporně rozpoznal. Po zjištění obsahuje výstup DBCC CHECKDB upozornění a doporučení ke spuštění DBCC UPDATEUSAGE pro vyřešení problému.

Osvědčené postupy

Doporučujeme následující:

  • Nespouštět DBCC UPDATEUSAGE rutinně, protože SQL Server uchovává metadata za většiny okolností. DBCC UPDATEUSAGE by se měly spouštět podle potřeby, například v případě, že sp_spaceusedvrátí nesprávné hodnoty. DBCC UPDATEUSAGE může nějakou dobu trvat, než se spustí u velkých tabulek nebo databází.
  • Zvažte běžné spuštění DBCC UPDATEUSAGE (například týdně) pouze v případě, že databáze prochází častými úpravami jazyka DDL (Data Definition Language), jako jsou příkazy CREATE, ALTER nebo DROP.

Sady výsledků

DBCC UPDATEUSAGE vrací (hodnoty se mohou lišit):

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

Dovolení

Vyžaduje členství v pevné roli serveru nebo db_owner pevné databázové roli.

Příklady

A. Aktualizace počtu stránek nebo řádků nebo obojího pro všechny objekty v aktuální databázi

Následující příklad určuje 0 pro název databáze a DBCC UPDATEUSAGE sestavy aktualizované informace o počtu stránek nebo řádků pro aktuální databázi.

DBCC UPDATEUSAGE (0);
GO

B. Aktualizace počtu stránek nebo řádků nebo obojího pro AdventureWorks a potlačení informačních zpráv

Následující příklad určuje AdventureWorks2022 jako název databáze a potlačuje všechny informační zprávy.

DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO

C. Aktualizace počtu stránek nebo řádků nebo obojího pro tabulku Zaměstnanec

Následující příklad sestavuje aktualizované informace o počtu stránek nebo řádků pro tabulku Employee v databázi AdventureWorks2022.

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

D. Aktualizace počtu stránek nebo řádků nebo obojího pro konkrétní index v tabulce

Následující příklad určuje IX_Employee_ManagerID jako název indexu.

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

Viz také

  • DBCC (Transact-SQL)
  • sp_spaceused (Transact-SQL)
  • UPDATE STATISTICS (Transact-SQL)