DBCC UPDATEUSAGE (Transact-SQL)
platí pro:SQL Server
Azure SQL Database
azure 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.
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ě, žesp_spaceused
vrá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