Transact-SQL 参考

DBCC UPDATEUSAGE

报告和更正 sysindexes 表的不正确内容,该内容可能会导致通过 sp_spaceused 系统存储过程产生不正确的空间使用报表。

语法

DBCC UPDATEUSAGE
    (    { 'database_name' | 0 }
        [ , { 'table_name' | 'view_name' }
        [ , { index_id | 'index_name' } ] ]
    )
   
[ WITH    [ COUNT_ROWS ] [ , NO_INFOMSGS ]
        ]

参数

'database_name' | 0

是要对其空间使用统计信息进行报告和更正的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。如果指定 0,则使用当前数据库。

'table_name' | 'view_name'

是要对其空间使用统计信息进行报告和更正的表名或索引名。表名和视图名称必须符合标识符规则。

index_id | 'index_name'

是要使用的索引标识 (ID) 号或索引名。如果未指定,该语句就对指定表或索引的所有索引进行处理。

COUNT_ROWS

指定使用表或视图中的行数计数来更新 sysindexes rows 列。这只适用于其 indid 为 0 或 1 的 sysindexes 行。该选项可能会影响大表和索引视图的性能。

NO_INFOMSGS

禁止显示所有信息性消息。

注释

DBCC UPDATEUSAGE 对表和聚集索引中 sysindexes 表的 rowsusedreserveddpages 列进行更正。不对非聚集索引的大小信息进行维护。

如果 sysindexes 中没有不正确的内容,DBCC UPDATEUSAGE 则不返回数据。如果发现不正确的内容,并对其进行更正,同时没有使用 WITH NO_INFOMSGS 选项,UPDATEUSAGE 就会返回 sysindexes 中所更新的行和列。

使用 UPDATEUSAGE 以与空间使用计数器同步。DBCC UPDATEUSAGE 在大表或大数据库上运行可能会需要一些时间,所以通常只在怀疑 sp_spaceused 所返回的值不正确时使用。返回表或索引的空间信息之前,sp_spaceused 接受可选参数以运行 DBCC UPDATEUSAGE。

结果集

DBCC UPDATEUSAGE 返回 Northwind 数据库的以下结果集(值可能会有变化):

DBCC UPDATEUSAGE: sysindexes row updated for table 'Orders' (index ID 4):
        USED pages: Changed from (2) to (4) pages.
        RSVD pages: Changed from (2) to (4) pages.
DBCC UPDATEUSAGE: sysindexes row updated for table 'Orders' (index ID 5):
        USED pages: Changed from (2) to (4) pages.
        RSVD pages: Changed from (2) to (4) pages.
'...'
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
权限

DBCC UPDATEUSAGE 权限默认授予 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员且不可转让。

示例
A. 通过为当前数据库指定 0 更新 sysindexes

下例为数据库名称指定 0,而 Microsoft® SQL Server™ 报告有关当前数据库的信息。

DBCC UPDATEUSAGE (0)
GO
B. 为 pubs 更新 sysindexes,禁止显示信息性消息

下例将 pubs 指定为数据库名称,并禁止显示所有信息性消息。

DBCC UPDATEUSAGE ('pubs') WITH NO_INFOMSGS 
GO
C. 更新 authors 表的 sysindexes

下例报告有关 authors 表的信息。

DBCC UPDATEUSAGE ('pubs','authors')
GO
D. 更新指定索引的 sysindexes

下例使用索引名 UPKCL_auidind

DBCC UPDATEUSAGE ('pubs', 'authors', 'UPKCL_auidind')

请参见

DBCC

sp_spaceused

sysindexes

表和索引构架

UPDATE STATISTICS