在 SQL Server 2008 R2 标准版中是否有直接压缩 XML 数据类型列的方法?
我的约束是:
- SQL Server 2008 R2 标准版;
- 必须将原始 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/