我有一个数据库。在这个数据库中有一个带有一些数据的表。数据是一个大型BLOB但无法压缩(出于我无法控制的原因)。
我有一个与此数据库对话的应用程序。我真的希望能够确保在传输过程中压缩数据。
据我了解,数据库提供程序将处理压缩等。
是这样的吗?是否有常见的设置,比如SQL Server启用压缩?
答案 0 :(得分:2)
对于SQL Server,我找到了this "connect" entry,但没有:我不认为TDS目前是压缩的。你可以(虽然我不喜欢它)使用SQL-CLR在.NET代码中压缩它,但它可能有太多的开销。
我知道在这种情况下它不是一个选项(来自问题),但通常最好以你想要的方式存储BLOB。因此,如果您想要压缩它们,请将它们压缩存储。 SQL不是操作二进制文件的好工具;-p这样的策略也意味着你没有使用供应商特定的功能 - 只是存储不透明的BLOB的能力。
答案 1 :(得分:1)
如果数据库访问层未提供压缩,则可以在数据库服务器和应用程序主机之间设置VPN链接。最严重的VPN解决方案压缩传输中的数据。 OpenVPN是一种简单易用的快速创建隧道的解决方案。数据在传输过程中被压缩。可能不会像本机压缩那样高效,但它是一种可能的解决方案。并且您可以免费获得加密:)。
答案 2 :(得分:0)
SQL Server 2008是第一个本机支持压缩备份的SQL Server版本。在2008年之前,您需要使用第三方产品。