xml - 在 SQL Server 2008 R2 中压缩 XML 列

标签 xml sql-server-2008

在 SQL Server 2008 R2 标准版中是否有直接压缩 XML 数据类型列的方法?

我的约束是:

  1. SQL Server 2008 R2 标准版;
  2. 必须将原始 XMl 存储在数据库中;

我之前问过一个关于广义文本存储的类似问题Compressing a text field in Sql Server 2k8 R2其结果是使用 FILESTREAMS。如果我在这里这样做,虽然我会失去 SQL Server 公开的所有 XML 功能,但我想利用这些功能。

最佳答案

您始终可以将 XML 存储为 NVARCHAR,然后在针对首先将数据转换为 XML 的列的 View 上使用 XML 功能。但是,您必须权衡运行时工作抵消了压缩带来的好处的程度(会有显着的 CPU 开销,与您实际实现的压缩量成正比)。我能理解在 I/O 密集型系统中做这种事情的愿望,但我怀疑正是出于这个原因,XML 列不是压缩的候选者——成本往往会超过 yield 。如果您真的打算将数据存储为压缩数据,并且您最关心的是存储空间,我会考虑让您的应用程序进行压缩(我希望 C# 在这里比 T-SQL 和 native 压缩更灵活)并让您的应用程序处理 XML 功能。

关于xml - 在 SQL Server 2008 R2 中压缩 XML 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643878/

相关文章:

android - Android解析XML文件获取特定数据

php - OSM 数据解析以获取带有子节点的节点

c# - 仅在 xml 文档中保存 xml header 会引发错误

sql-server - 应使用哪种数据类型在数据库中保存图像?

sql - 从表中获取最后一条记录 ID 的最安全方法

java - 运行使用 OPENQUERY 访问链接服务器的 T-SQL 查询时出现 JDBC 错误

c# - 如何使用 C#、Entity Framework 和 SQL Server 2008 读取/写入地理数据?

java - 转换 XML => JSON => 基于 XSD 模式的 XML

c# - List<Object> 的 XML 序列化

SQL 比较正在更新的字段