使用表压缩的缺点

时间:2017-01-12 14:30:29

标签: sql sql-server sql-server-2008 tsql

使用表格压缩有任何缺点,例如Row compressionPage compression,例如:

ALTER TABLE A
REBUILD WITH (DATA_COMPRESSION = PAGE)  --or ROW

如果上面的命令可以利用sql查询的性能,那么为什么我们每次创建新表时都不会使用它,即使它可能不会影响具有少量数据页的表。

使用它的任何缺点?

由于

要点: 检查@ paulbarbin的答案或check the conclusion part of this post here

  

正如我们所看到的,行级和页级压缩可以是强大的工具   帮助您减少数据占用空间并改善执行   速度,但以CPU时间为代价。这是因为每次访问   行或页面需要一个步骤来撤消压缩(或计算   并匹配哈希),这直接转化为计算时间。所以,   在部署行级或页级压缩时,执行一些类似的操作   测试(欢迎使用我的框架!),看看它是如何播放的   在您的测试环境中。您的结果应该告知您的决定    - 如果你已经受CPU限制,你能负担得起吗?如果你的存储器着火了,你能负担得起吗?

2 个答案:

答案 0 :(得分:4)

压缩确实带来了开销。完成压缩需要额外的CPU,并且基于压缩的限制,您可能会发现增益小于痛苦。但是,我的理解是大多数人在大多数情况下都受益于页面压缩,并在特定情况下使用行压缩。我说在你的开发/测试环境中尝试一下,确定你的CPU成本和查询节省,并在有意义的情况下实施。

答案 1 :(得分:0)

将页级压缩应用于表时,还将应用行级压缩。页压缩的好处取决于压缩的数据类型。涉及多个重复值的数据将比由更多唯一值填充的数据得到更多的压缩。另外,数据压缩改变了查询计划,因为数据被压缩在不同数量的页面和行中。另外,CPU需要检索压缩后的数据。 我建议仅当您有一个包含数百万条记录的大型仓库表并且您/您的应用程序不需要频繁查询该表时,才进行压缩。您还可以在分区表分区时使用分区级压缩。