DBCC UPDATEUSAGE 将针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。如果系统表中没有错误,则 DBCC UPDATEUSAGE 不返回数据。如果发现错误,并对其进行了更正,同时没有使用 WITH NO_INFOMSGS,DBCC UPDATEUSAGE 将返回系统表中更新的行和列。
DBCC CHECKDB 已得到增强,可以检测页计数或行计数变为负值的情况。检测到上述问题后,DBCC CHECKDB 的输出会包含一个警告和一个建议,建议运行 DBCC UPDATEUSAGE 解决该问题。
从 sql Server 2000 升级数据库后始终运行 DBCC UPDATEUSAGE。这将更正页计数和行计数并在以后加以保持。
对于在 sql Server 2005 或更高版本中创建的数据库,或曾经使用 DBCC UPDATEUSAGE 更正的已升级数据库,请勿定期运行 DBCC UPDATEUSAGE。由于对大型表或数据库运行 DBCC UPDATEUSAGE 会耗费一定的时间,因此不应使用此语句,除非您怀疑 sp_spaceused 返回了不正确的值。
只有数据库的 CREATE、ALTER 或 DROP 语句等数据定义语言 (DDL) 经常受到修改时,才应考虑定期运行 DBCC UPDATEUSAGE(例如,每周运行一次)。
下面的示例将 AdventureWorks2008R2 指定为数据库名称,并禁止显示所有信息性消息。
USE AdventureWorks2008R2; GO DBCC UPDATEUSAGE (AdventureWorks2008R2) WITH NO_INFOMSGS; GO
下面的示例报告 AdventureWorks2008R2 数据库中 Employee 表的已更新页计数或行计数信息。
USE AdventureWorks2008R2; GO DBCC UPDATEUSAGE (AdventureWorks2008R2,"HumanResources.Employee"); GO
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。