可以压缩 SQL Server 网络流量吗?
Posted
技术标签:
【中文标题】可以压缩 SQL Server 网络流量吗?【英文标题】:Possible to compress SQL Server network traffic? 【发布时间】:2011-01-28 01:48:59 【问题描述】:我有一个 .NET 客户端,需要通过 WAN 连接到远程 SQL Server,是否可以压缩客户端和服务器之间的 SQL 流量?
我正在使用 .NET 3.5 和 SQL Server 2005 及更高版本。
【问题讨论】:
【参考方案1】:查看 SQL Server 2008 的 connectionstrings.com 此处,数据库提供程序没有某种压缩方案...您可能需要在不同的端口上编写一个包装器来压缩数据,通过使用前面最后,通过该端口发送数据,从那里,压缩它,将其发送到远程端点,解压缩,并将其转发到服务器所在的真实 tcp/ip 端口。
通常 SQL Server 位于端口 1433...
因为一张图片胜过千言万语....
+--------+ +--------+ |客户 | |服务器 | +--------+ +--------+ 端口 1234 端口 1433 TX/RX =模块= -+------------+模块将在两端压缩/解压...
老实说,这听起来会涉及到一些工作,因为防火墙的漏洞必须被刺穿以允许压缩数据进出...加入 NAT/SNAT 可能会使事情变得复杂...
看看我在Codeproject 上写的这篇文章,该代码充当流量重定向器,可以轻松修改以使用压缩/解压缩方案..
【讨论】:
哇...我希望 sqlserver 的一些人能够接受并创建 a) 用于接收/发送压缩数据的 sqlserver 插件服务,b) 更新他们的驱动程序以发送/接收...似乎对我来说就像低垂的果实......【参考方案2】:正如其他人所说,SQL Server TDS 协议没有内置压缩。值得一提的是,默认情况下也没有加密。要启用加密,您必须使用证书并在连接字符串中指定它。
解决这两个问题的最简单解决方案是打开启用加密和压缩的 *** 隧道。简单的 Microsoft PPTP 解决了这两个问题并且易于设置。
【讨论】:
虽然我不打算这样做,但这是一个非常有创意的想法!【参考方案3】:我认为 SQL 服务器连接中没有实现压缩 - 如果您需要压缩数据,则在与服务通信时应使用 Web 服务和 HTTP 压缩。
【讨论】:
【参考方案4】:我知道这个问题已经有一年多了,但我发现自己正在寻找这个问题,所以我想我会分享我的发现。有一个(相当昂贵的)软件可以压缩 SQL 服务器流量。我目前正在为我的一位客户测试它,它运行良好,平均达到 60% 的压缩比。
http://www.nitrosphere.net/store/nitroaccelerator
它还与未安装此服务的客户端兼容。
【讨论】:
【参考方案5】:在这种情况下,我建议使用 Web 服务或 WCF 来发送数据,而不是使用与数据库的连接。
【讨论】:
不幸的是它是一个现有的应用程序,这种类型的更改将意味着重写:(【参考方案6】:看看这个:http://www.toonel.net/tcpany.htm
顺便说一句,我也认为 SQL Server 本身不能压缩流量,但是,在应用程序中使用网络层 - 你可以在那里进行压缩。
【讨论】:
这是你以前用过的东西吗?您是否还需要在服务器端进行一些配置?【参考方案7】:如果您想创建一个具有压缩和加密功能的隧道(可以禁用以保存进程),而无需创建 *** 并且也是跨平台的,您可以在这里拥有一个用作客户端服务器并使用监听的隧道ports all life 还可以作为防火墙作为隧道使用单个端口作为管理远程连接和端口的通道),这个工具在 10 年前就已经存在:http://www.winton.org.uk/zebedee/
我正在做实验来压缩(在第 3 级)未加密的 SQL Server 连接,并且我得到了很好的比率 tuneando 压缩级别,让孩子们为有限的通道花费大量查询可能的数据的意图...... 更新于:https://sourceforge.net/projects/zebedee/
【讨论】:
【参考方案8】:我们目前还在我们的 WAN 网络上测试 NitroSphere 软件,我们的压缩率达到了 73%,速度也有了很大的提升。
我认为,与 SQL Server 许可、Riverbed 设备和 MPLS WAN 连接相比,该软件实际上便宜。因此,如果您遇到带宽问题,请务必查看。它还支持加密,但我们不打算使用它,因为一切都将保留在内部 MPLS 网络上。
【讨论】:
以上是关于可以压缩 SQL Server 网络流量吗?的主要内容,如果未能解决你的问题,请参考以下文章