一SQLSERVER数据库出现了点异常。
经核查,发现数据库的表可用空间为0.00MB。
查看该数据库文件大小才,仅为560多M,而硬盘大小还有好几百G。
更为诡异的事是:已经设置了该文件的属性为自动增长。
用DBCC CHECKDB (YourDATABASE);
GO
查看(该sql语句可以检测页计数或行计数变为负值的情况),DBCC CHECKDB 的输出包含一个警告和一个建议。
可以得出这是由内部页计数出错导致的?
于是使用DBCC UPDATEUSAGE(YourDATABASE)GO 进行更进与重新统计。
(DBCC UPDATEUSAGE 将针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。若表无误,则 DBCC UPDATEUSAGE 不返回数据。若发现错误,则对其进行更正并更新行和列。http://msdn.microsoft.com/zh-cn/library/ms188414(SQL.105).aspx)
结果发现,目标数据库的可用空间仅增大为20多M。
这是什么原因呢?