2009-04-15 102 views
0

快速q,可能是一个愚蠢的,因为我迄今在Google上没有发现。压缩来自数据库的数据

我有一个数据库。在这个数据库中是一个包含一些数据的表。数据是一个大的BLOB,但不能被压缩(出于我的控制原因)。

我有一个应用程序与此数据库交谈。我真的希望能够确保数据在传输过程中被压缩。

据我所知,数据库提供商将处理压缩等。

这是这种情况吗?是否有常见的设置,比如SQL Server启用压缩?

回答

2

对于SQL Server,我发现this "connect" entry,但没有:我不认为TDS目前是压缩的。你可以(虽然我不喜欢它)使用SQL-CLR在.NET代码中压缩它,但它可能有太多的开销。

我知道在这种情况下(从问题)它不是一个选项,但通常最好按照您想要的方式存储BLOB。所以如果你想让它们压缩,将它们压缩存储。 SQL不是用于操作二进制文件的好工具; -p这种策略也意味着您没有使用特定于供应商的功能 - 只是存储不透明BLOB的能力。

+0

谢谢,不幸的是我不能改变底层数据,否则我会!因此,就SQL-CLR解决方案而言,我会创建一个GetMyData sproc,将其压缩为.NET数据类型? – Duncan 2009-04-15 15:10:44

0

SQL Server 2008是本机支持备份压缩的SQL Server的第一个版本。在2008年之前,你需要用第三方产品做到这一点。

1

如果您的数据库访问层不提供压缩功能,则可以在数据库服务器和应用程序主机之间设置VPN链接。最严重的VPN解决方案可以压缩传输中的数据OpenVPN是用于快速创建隧道的简单且易于设置的解决方案。数据在传输过程中被压缩。可能不会像原生压缩那样高效,但它是一种可能的解决方案。你可以免费得到加密:)。