sql-server - SQL压缩 "None"是否清理数据表?

标签 sql-server compression

我正在尝试减少超过 4 GB 并不断增长的 SQL Server 数据库的存储空间。我在 SSMS 中打开了数据压缩向导,在最大的表上选择了压缩类型“无”,然后单击了计算 按钮。令我惊讶的是,即使没有压缩,结果也不到原始结果的一半(2.2 GB 减少到不到 1 GB)。

这是真正的节省吗?也就是说,将压缩设置为“无”是否会一次性清理未使用的空间?或者这是在浪费时间吗?

Compression Wizard

最佳答案

好的,在使用示例数据库进行测试后,这就是我的发现。重要的是将表的压缩设置为“无”会导致 SSMS 生成如下脚本:

USE [MyDatabase]
ALTER TABLE [dbo].[MyTable] REBUILD
PARTITION = ALL
WITH (DATA_COMPRESSION = NONE)

请特别注意“alter table MyTable rebuild”。如果表已被修改,例如删除列,则每行中都有未使用的空间。 REBUILD 选项回收此空间,表变小。

因此,回答我自己的问题:是的,将压缩设置为“无”是一次性清理表中未使用的空间。由此产生的节省不如“计算”按钮所建议的那么好,但在我的示例中仍然很重要。

总而言之,一个简单的“alter table MyTable rebuild”就可以完成同样的事情。

(感谢发贴的人!)

关于sql-server - SQL压缩 "None"是否清理数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310485/

相关文章:

c# - LINQ to SQL 中的字符串比较结果为 null

c# - SQL Server 长时间运行的查询通过 .Net 随机超时

sql - 如何回滚数据库部署而不丢失新数据?

python - 为什么列表结果与预期不同?

javascript - 解压缩javascript文件的最佳方法

image-processing - OpenCV imwrite 增加png图像的大小

swift - 快速创建透明纹理

sql-server - 订阅没有注册资源提供程序 Microsoft.Sql 的权限

sql - TSQL : Is there a faster or better way to encrypt values?

android - Android 上的快速视频压缩