因此,我们正在使用的一些数据库出现了一个相当大的问题。出于某种原因,人们的数据库已经增长到一个荒谬的文件大小,而表的数据没有任何变化。虽然我不知道是什么突然导致了这种情况,但我现在更关心的是清除它使用的磁盘空间。我已经运行 sp_spaceused 并将罪魁祸首追踪到 2 个表中的 1 个(取决于数据库)。对于每个数据库,其中一个表为保留空间分配了超过半 GB 的空间,而数据只有 50 MB 左右。它显示 index_size 约为 113 MB。该表没有聚集索引,大约有 15 列,除了 2 列长度为 255 的 nvarchar 类型(这些列在表中通常为 null 或空)外,所有列的长度都相对较小。
我试过运行 DBCC 收缩数据库和截断表,但它没有做任何事情。我对此进行了一些研究,其他一些人也遇到了这个问题,但是如果 shrinkdatabase 没有修复它,那么也没有为他们找到解决方案。
让我知道你们是否需要了解有关表或数据库设置的任何其他信息。我不知道还能尝试什么,这对我们来说是一个重大问题,因为人们的数据库突然占用了之前 10 倍的空间。
编辑:在尝试运行 DBCC DBREINDEX 并尝试通过企业管理器更改为聚集索引后,我收到一条错误消息:
无法为数据库“DB”分配新页面。文件组 PRIMARY 中没有更多可用页面。可以通过删除对象、添加其他文件或允许文件增长来创建空间。
我也试过从这个表中删除行,它对表的大小没有影响。日志文件按预期增加,但这是表大小的唯一变化。