在 SQL Server 2016 (13.0.6300.2) 上,我们有一个表有两个 XML 列和大约 1500000 行。表的大小约为 150 GB。压缩此表的最佳选择是什么?我在开发环境中检查 PAGE 压缩,但它只节省了 3%。在 Sql Server 2019 上(计划在不久的将来更新)是否有可能会更好?
在 SQL Server 2016 (13.0.6300.2) 上,我们有一个表有两个 XML 列和大约 1500000 行。表的大小约为 150 GB。压缩此表的最佳选择是什么?我在开发环境中检查 PAGE 压缩,但它只节省了 3%。在 Sql Server 2019 上(计划在不久的将来更新)是否有可能会更好?
如果数据是行外的,则不会使用页面压缩来压缩 XML 数据。默认情况下,如果行小于 8000 字节,则 XML 数据(所有类型的 LOB 数据)在行内。
除非我计算错误,否则平均每行 107 000 个字节。即,您的大量 XML 数据很可能是行外的。这意味着页面压缩无济于事(很多)。
SQL Server 2022 具有 XML 压缩。请参阅这个和这个(XML_COMPRESSION 选项)。