我试图在 sql server 数据表上实现“行”数据压缩。在一个具有 116000 条记录和 30 列(10-15 列可能符合行数据压缩条件)的数据表上成功执行脚本后,我按照以下步骤进行物理内存消耗验证:
第 1 步)我为驱动器中的数据库计算所有数据文件(mfd、ldf 和 ndf)的存储空间。结果为 6.63 GB。
步骤 2) 成功执行行数据压缩脚本,例如
USE [DbName]
ALTER TABLE [dbo].[TableName] REBUILD PARTITION = ALL
WITH
(DATA_COMPRESSION = ROW
)
第 3 步)按照第 1 步)得到 6.66GB。这些步骤之间没有单一的事务和数据插入。
我是在做错误的验证,还是我对数据压缩的想法有误。
假设: Int(4 byte) 数据类型且存储值小于 100 的数据列将被压缩存储在 1 byte(small Int) 的空间中。对于其他数据列也是如此。