我正在尝试减少超过4 GB且不断增长的SQL Server数据库的存储空间。我在SSMS中打开了数据压缩向导,在最大的表上选择了压缩类型“无”,然后单击计算按钮。令我感到惊讶的是,即使没有压缩,结果也不到原来的一半(2.2 GB到小于1 GB)。
这是真正的节省吗?也就是说,将压缩设置为“无”执行一次性清理未使用的空间?或者这是浪费时间?
答案 0 :(得分:2)
好的,在使用示例数据库进行测试之后,这就是我找到的内容。重要的是将表的压缩设置为“无”会导致SSMS生成如下的脚本:
USE [MyDatabase]
ALTER TABLE [dbo].[MyTable] REBUILD
PARTITION = ALL
WITH (DATA_COMPRESSION = NONE)
请特别注意“alter table MyTable rebuild ”。如果已修改表(例如删除列),则每行中都有未使用的空间。 REBUILD选项回收此空间,表格变小。
所以,回答我自己的问题:是的,将压缩设置为“无”是一次性清理表中未使用的空间。由此产生的节省不如“计算”按钮所示,但在我的例子中仍然很重要。
所有这一切,一个简单的“改变表MyTable重建”将完成同样的事情。
(感谢那些发帖的人!)
答案 1 :(得分:1)
不,它没有。
压缩类型= NONE仅表示在不应用任何压缩的情况下重建表中的索引。因此,它不会改变图形。下次打开表的压缩向导时,单击"计算"后将显示相同的数字。