我的本地系统上有2019,在一个大于50 my的空闲磁盘空间的大型SSD上。
我在生产中有一个14 my的数据库,我复制了它,删除了一堆旧数据,并将其大小缩小到10G以下,并在我的本地系统上备份并恢复了它。经过一些使用,本地数据库自动增长到10G,但仍然有大量的空闲空间。
现在,它开始为某些表插入记录时出现磁盘空间不足的错误(并不是所有这些都很奇怪):
由于文件组“主”中磁盘空间不足,无法为数据库“MyDB”分配新页。通过删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长,创建必要的空间。
当我运行收缩数据库命令时,它只清除日志,不释放数据文件中的空闲空间。我尝试过各种各样的方法。似乎收缩数据库命令本身需要一些空间,即使数据文件有很大的空间,也得不到它。有什么想法吗?
发布于 2022-10-15 21:43:17
如果表中没有聚集索引,则重新生成该表。对于其余部分,只需重新构建所有索引,然后再次尝试收缩。
发布于 2022-10-14 08:18:56
一个或两个收缩对话框显示有关空闲空间的错误信息。我记得以前看到过,我们在你贴出的图片中看到的数字也支持了这一点。
无论如何,使用收缩文件,而不是整个数据库。不要选择“释放未使用的空间”(这不会对数据进行洗牌,最后一次使用的页面限制了它可以缩小到的大小)。使用“重组页面.”。
我也支持MBuschi的评论,考虑使用评估或开发版,假设这不是任何类型的生产环境。
https://dba.stackexchange.com/questions/318216
复制相似问题