Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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
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_name | database_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 UPDATEUSAGE
rutynowo, ponieważ program SQL Server przechowuje metadane w większości okoliczności.DBCC UPDATEUSAGE
powinny być uruchamiane zgodnie z potrzebami, na przykład gdy podejrzewasz, że niepoprawne wartości są zwracane przezsp_spaceused
.DBCC UPDATEUSAGE
uruchomienie dużych tabel lub baz danych może zająć trochę czasu. - Rozważ uruchomienie
DBCC UPDATEUSAGE
rutynowo (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 AdventureWorks2022
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 AdventureWorks2022
.
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