5

我有一列我想在(XML 数据)中存储大量文本数据。每行大约 8,000 个字符,每分钟大约 100-500 行。

这么多数据意味着我将不得不相当积极地清除该列。(由于我必须在我们公司的 SAN 上托管我的 SQL Server,存储空间非常昂贵。) 但是如果我能找到一种方法来压缩这些数据,我可以将其保留更长时间。

我看过类似这篇关于使用 CLR 集成在 SQL 2005 中压缩 BLOB 的文章。

我还看到了用于 SQL Server 2005的工具SQLCompress.NET 。

两者似乎都说他们完全按照我的意愿行事。 在存储时压缩单个列的数据。

但是,该工具已被废弃(自 2008 年以来没有更新),我对 CLR 集成知之甚少,除了听说它会引起问题。 此外,这两种解决方案都适用于 SQL Server 2005。

所以,这是我的问题。我正在使用 SQL Server 2008 R2。这些 SQL Server 2005 解决方案中的任何一个都适合我吗?

还是有其他解决方案可以用来压缩我的数据?

注意:行压缩和页面压缩对我需要的东西没有帮助(至少据我所知。)行压缩将固定长度的数据存储在可变长度字段中,页面压缩减少了冗余数据的实例。这些都对大块文本没有帮助。

注二:我看到了这个问题,但它的答案使用了行和页压缩或文件流。我不想使用 FILESTREAM,因为我失去了镜像数据库的能力。

4

2 回答 2

0

我认为最好的选择是使用客户端库在将数据放入 SQL Server 之前对其进行压缩和解压缩,如果要通过 XML 的特定元素或属性进行查询,可以提取并存储它们在单独的列或规范化的行中(无论如何您都希望这样做——查询大型 XML 文本列,尤其是对于嵌套元素,速度很)。

于 2012-01-27T19:34:05.013 回答
0

您可以尝试使用 filestream 来存储 xml 文档并使用 NTFS 来压缩它们。

见这篇文章

在 SQL2008 中使用文件流

于 2012-02-10T09:39:59.157 回答