DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC UPDATEU
报告目录视图中的页数和行数错误并进行更正。这些错误可能导致 sp_spaceused 系统存储过程返回不正确的空间使用报告。
?Transact-SQL 语法约定 DBCC UPDATEUSAGE (???{ database_name | database_id | 0 } ????[,{ table_name | table_id | view_name | view_id } ????[,{ index_name | index_id } ] ] ) [ WITH [ NO_INFOMSGS ] [,] [ COUNT_ROWS ]?]参数 database_name?|? database_id?| 0 要对其空间使用统计信息进行报告和更正的数据库的名称或 ID。如果指定 0,则使用当前数据库。数据库名称必须符合有关标识符的规则。 table_name?|? table_id?|? view_name?|? view_id要对其空间使用统计信息进行报告和更正的表或索引视图的名称或 ID。表和视图的名称必须符合标识符规则。 index_id?|? index_name要使用的索引的 ID 或名称。如果未指定,语句将对指定的表或视图的所有索引进行处理。 WITH允许指定选项。 NO_INFOMSGS取消显示所有信息性消息。 COUNT_ROWS指定使用表或视图中的行数的当前计数更新 row count 列。 注释DBCC UPDATEUSAGE 将针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。如果系统表中没有错误,则 DBCC UPDATEUSAGE 不返回数据。如果发现错误,并对其进行了更正,同时没有使用 WITH NO_INFOMSGS,DBCC UPDATEUSAGE 将返回系统表中更新的行和列。 DBCC CHECKDB 已得到增强,可以检测页计数或行计数变为负值的情况。检测到上述问题后,DBCC CHECKDB 的输出会包含一个警告和一个建议,建议运行 DBCC UPDATEUSAGE 解决该问题。 最佳做法
DBCC UPDATEUSAGE 返回(值可能有所不同): DBCC 执行完毕。如果 DBCC 输出了错误消息,请与系统管理员联系。 权限要求拥有?sysadmin?固定服务器角色或?db_owner?固定数据库角色的成员身份。 示例 A. 为当前数据库中的所有对象更新页计数或行计数,或同时更新这两者下面的示例将数据库名称指定为?0,且?DBCC UPDATEUSAGE?报告当前数据库的已更新页计数或行计数信息。 Transact-SQLDBCC UPDATEUSAGE (0); GO B. 更新页计数或行计数,或同时更新这两者,并禁止显示信息性消息。下面的示例将 AdventureWorks2008R2 指定为数据库名称,并禁止显示所有信息性消息。 USE AdventureWorks2008R2; GO DBCC UPDATEUSAGE (AdventureWorks2008R2) WITH NO_INFOMSGS; GO C. 为某一表更新页计数或行计数,或同时更新这两者下面的示例报告 AdventureWorks2008R2 数据库中?Employee?表的已更新页计数或行计数信息。 USE AdventureWorks2008R2; GO DBCC UPDATEUSAGE (AdventureWorks2008R2,"HumanResources.Employee"); GO D. 为表中的特定索引更新页计数或行计数,或同时更新这两者下面的示例指定一个索引名称。
|