Sql 使用表压缩的缺点

Sql 使用表压缩的缺点,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,使用表压缩(例如行压缩和页面压缩)是否有任何缺点,例如: ALTER TABLE A REBUILD WITH (DATA_COMPRESSION = PAGE) --or ROW 如果上面的命令可以利用sql查询的性能,为什么我们不在每次创建新表时使用它,即使它可能不会影响数据页很少的表呢 使用这个有什么缺点吗 谢谢 总结: 检查@paulbarbin的答案或 正如我们所看到的,行级和页级压缩可以是强大的工具 帮助您减少数据占用的空间并改进执行 速度,但以牺牲CPU时间为代价。这是因为每次

使用表压缩(例如
行压缩
页面压缩
)是否有任何缺点,例如:

ALTER TABLE A
REBUILD WITH (DATA_COMPRESSION = PAGE)  --or ROW
如果上面的命令可以利用sql查询的性能,为什么我们不在每次创建新表时使用它,即使它可能不会影响数据页很少的表呢

使用这个有什么缺点吗

谢谢

总结: 检查@paulbarbin的答案或

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


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

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

您使用的是MySQL还是MS SQL Server?SQL Server@jarlh谢谢。除了CPU成本之外,还有其他的吗?不太好,但是很容易找到关于这个主题的好文章。这是我找到的第一个-