请解释行和页压缩的区别

Ger*_*ski 10 sql-server compression

我正在尝试确定应用哪个以及何时是应用压缩的合适时间。我发布这个问题是为了从这个社区获得洞察力。我已经阅读了几篇文章,但希望在 DB Administrators 中有一个解决此问题的地方。

Joh*_*ohn 7

这是第 v 行页面(无双关语)压缩的一个很好的参考和解释:http : //blogs.lessthandot.com/index.php/datamgmt/dbprogramming/how-sql-server-data-compression/

简而言之,页面压缩包含行级压缩所包含的算法,然后还涵盖前缀压缩和字典压缩。前缀和字典压缩在数据中找到模式并用较小的值替换它们。在解压过程中,它将执行相反的操作并将数据恢复到其原始值。

行级别使压缩决策更容易,例如减少元数据和删除未使用的空间,例如存储在 CHAR(1000) 中的字母“Y”。

引用的文章对此进行了更详细的解释。


小智 7

为了对一堆表做出决定,您可以运行过程“ sp_estimate_data_compression_savings ”:

exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,ROW;
exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,PAGE;
Run Code Online (Sandbox Code Playgroud)

这将帮助您确定每个特定表的节省。

根据我的经验,PAGE 压缩在大多数情况下效果更好。