小编Car*_*lho的帖子

删除 SQL Server 上的对象后如何回收空间?

我在 SQL Server 2008 上运行的数据库现在空间不足,错误如“由于文件组 'PRIMARY' 中的磁盘空间不足,无法为数据库 'database' 分配新页面。通过删除对象中的对象来创建必要的空间文件组,向文件组添加其他文件,或为文件组中的现有文件设置自动增长。” 是常见的。

如果我查询 FILEPROPERTY('SPACEUSED') 以获取主文件组上唯一的文件,我得到的空间不到 10MB,仅剩下 0.1% 的可用空间。所以,系统有理由抱怨。

我通过在 SSMS 上右键单击数据库来调查表占用的空间,运行一些有关磁盘使用情况的报告,并检测到有一个表占用了大量空间。我不明白为什么在 TRUNCATE 表之后, FILEPROPERTY('SPACEUSED') 返回完全相同(非常小)的数量。除非我弄错了,TRUNCATE 的工作原理是在引擎盖下,删除并重新创建表

但是,有关磁盘使用情况的标准报告表明该表不再占用大量空间。我预计免费空间会增加,而丑陋的“无法分配新页面...”消息会消失,但事实并非如此。

我在这里缺少什么?

sql-server

0
推荐指数
1
解决办法
2877
查看次数

标签 统计

sql-server ×1