DBCC UPDATEUSAGE (Transact-SQL)
Applies To: SQL Server 2014, SQL Server 2016 Preview
Reports and corrects pages and row count inaccuracies in the catalog views. These inaccuracies may cause incorrect space usage reports returned by the sp_spaceused system stored procedure.
Applies to: SQL Server (SQL Server 2008 through current version).
- database_name | database_id | 0
Is the name or ID of the database for which to report and correct space usage statistics. If 0 is specified, the current database is used. Database names must comply with the rules for identifiers.
- table_name | table_id | view_name | view_id
Is the name or ID of the table or indexed view for which to report and correct space usage statistics. Table and view names must comply with the rules for identifiers.
- index_id | index_name
Is the ID or name of the index to use. If not specified, the statement processes all indexes for the specified table or view.
Allows options to be specified.
Suppresses all informational messages.
Specifies that the row count column is updated with the current count of the number of rows in the table or view.
DBCC UPDATEUSAGE corrects the rows, used pages, reserved pages, leaf pages and data page counts for each partition in a table or index. If there are no inaccuracies in the system tables, DBCC UPDATEUSAGE returns no data. If inaccuracies are found and corrected and WITH NO_INFOMSGS is not used, DBCC UPDATEUSAGE returns the rows and columns being updated in the system tables.
DBCC CHECKDB has been enhanced to detect when page or row counts become negative. When detected, the DBCC CHECKDB output contains a warning and a recommendation to run DBCC UPDATEUSAGE to address the issue.
Do not run DBCC UPDATEUSAGE routinely. Because DBCC UPDATEUSAGE can take some time to run on large tables or databases, it should not be used only unless you suspect incorrect values are being returned by sp_spaceused.
Consider running DBCC UPDATEUSAGE routinely (for example, weekly) only if the database undergoes frequent Data Definition Language (DDL) modifications, such as CREATE, ALTER, or DROP statements.
DBCC UPDATEUSAGE returns (values may vary):
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Requires membership in the sysadmin fixed server role or the db_owner fixed database role.
The following example specifies 0 for the database name and DBCC UPDATEUSAGE reports updated page or row count information for the current database.
DBCC UPDATEUSAGE (0); GO
The following example specifies AdventureWorks2012 as the database name and suppresses all informational messages.
DBCC UPDATEUSAGE (AdventureWorks2012) WITH NO_INFOMSGS; GO
The following example reports updated page or row count information for the Employee table in the AdventureWorks2012 database.
DBCC UPDATEUSAGE (AdventureWorks2012,'HumanResources.Employee'); GO
The following example specifies IX_Employee_ManagerID as the index name.
DBCC UPDATEUSAGE (AdventureWorks2012, 'HumanResources.Employee', IX_Employee_OrganizationLevel_OrganizationNode); GO