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.
DBCC UPDATEUSAGE
( { database_name | database_id | 0 }
[ , { table_name | table_id | view_name | view_id }
[ , { index_name | index_id } ] ]
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ] ]
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 .
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.
ID nebo název indexu, které se mají použít. Pokud není zadaný, příkaz zpracuje všechny indexy pro zadanou tabulku nebo zobrazení.
Umožňuje zadat možnosti.
Potlačí všechny informační zprávy.
Určuje, že sloupec počtu řádků se aktualizuje aktuálním počtem řádků v tabulce nebo zobrazení.
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.
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.
DBCC UPDATEUSAGE
vrací (hodnoty se mohou lišit):
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Vyžaduje členství v pevné roli serveru nebo db_owner pevné databázové roli.
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
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
Následující příklad určuje IX_Employee_ManagerID
jako název indexu.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO