Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Raporty i poprawia niedokładności stron i liczby wierszy w widokach wykazu. Te niedokładności mogą spowodować nieprawidłowe raporty użycia miejsca zwrócone przez procedurę składowaną systemu sp_spaceused.
Transact-SQL konwencje składni
Składnia
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_namedatabase_id | 0
Nazwa lub identyfikator bazy danych, dla której chcesz zgłosić i poprawić statystyki użycia miejsca. Jeśli określono wartość 0, używana jest bieżąca baza danych. Nazwy baz danych muszą być zgodne z regułami dotyczącymi identyfikatorów .
table_name | table_id | view_name | view_id
Nazwa lub identyfikator tabeli lub widoku indeksowanego, dla którego mają być raportowane i poprawne statystyki użycia miejsca. Nazwy tabel i widoków muszą być zgodne z regułami dotyczącymi identyfikatorów.
index_id | index_name
Identyfikator lub nazwa indeksu do użycia. Jeśli nie zostanie określony, instrukcja przetwarza wszystkie indeksy dla określonej tabeli lub widoku.
Z
Umożliwia określenie opcji.
NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne.
COUNT_ROWS
Określa, że kolumna liczba wierszy jest aktualizowana przy użyciu bieżącej liczby wierszy w tabeli lub widoku.
Uwagi
DBCC UPDATEUSAGE poprawia wiersze, używane strony, strony zarezerwowane, strony liścia i liczbę stron danych dla każdej partycji w tabeli lub indeksie. Jeśli w tabelach systemowych nie ma żadnych niedokładności, DBCC UPDATEUSAGE nie zwraca żadnych danych. Jeśli znaleziono niedokładności i poprawiono NO_INFOMSGS z NO_INFOMSGS, DBCC UPDATEUSAGE zwraca wiersze i kolumny aktualizowane w tabelach systemowych.
DBCC CHECKDB został rozszerzony w celu wykrywania, kiedy liczba stron lub wierszy staje się ujemna. Po wykryciu dane wyjściowe DBCC CHECKDB zawierają ostrzeżenie i zalecenie uruchomienia DBCC UPDATEUSAGE w celu rozwiązania problemu.
Najlepsze rozwiązania
Zalecamy wykonanie następujących czynności:
- Nie uruchamiaj
DBCC UPDATEUSAGErutynowo, ponieważ program SQL Server przechowuje metadane w większości okoliczności.DBCC UPDATEUSAGEpowinny być uruchamiane zgodnie z potrzebami, na przykład gdy podejrzewasz, że niepoprawne wartości są zwracane przezsp_spaceused.DBCC UPDATEUSAGEuruchomienie dużych tabel lub baz danych może zająć trochę czasu. - Rozważ uruchomienie
DBCC UPDATEUSAGErutynowo (na przykład co tydzień) tylko wtedy, gdy baza danych przechodzi częste modyfikacje języka Data Definition Language (DDL), takie jak instrukcje CREATE, ALTER lub DROP.
Zestawy wyników
DBCC UPDATEUSAGE zwraca (wartości mogą się różnić):
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Uprawnienia
Wymaga członkostwa w sysadmin stałej roli serwera lub stałej roli bazy danych db_owner.
Przykłady
A. Aktualizowanie liczby stron lub wierszy lub obu dla wszystkich obiektów w bieżącej bazie danych
W poniższym przykładzie określono 0 dla nazwy bazy danych i DBCC UPDATEUSAGE raportów zaktualizowano informacje o stronie lub liczbie wierszy dla bieżącej bazy danych.
DBCC UPDATEUSAGE (0);
GO
B. Aktualizowanie liczby stron lub wierszy albo obu dla bazy danych AdventureWorks oraz pomijanie komunikatów informacyjnych
Poniższy przykład określa AdventureWorks2025 jako nazwę bazy danych i pomija wszystkie komunikaty informacyjne.
DBCC UPDATEUSAGE (AdventureWorks2022) WITH NO_INFOMSGS;
GO
C. Aktualizowanie liczby stron lub wierszy albo obu dla tabeli Employee
Poniższy przykład raportuje zaktualizowane informacje o liczbie stron lub wierszy dla tabeli Employee w bazie danych AdventureWorks2025.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee');
GO
D. Aktualizowanie liczby stron lub wierszy lub obu dla określonego indeksu w tabeli
Poniższy przykład określa IX_Employee_ManagerID jako nazwę indeksu.
DBCC UPDATEUSAGE (AdventureWorks2022, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode);
GO