在SQL Server 2008中压缩TCP
本文关键字:压缩 TCP 2008 SQL Server | 更新日期: 2023-09-27 18:06:20
我们有。net 4.0应用程序使用实体框架。应用程序通过TCP远程连接到SQL Server。在局域网中,速度很快,但在互联网上,流量非常大。
所有我们想做的是打开一些TCP compression
,但看起来SQL Server 2008不提供这个功能。
使TCP通信压缩的最简单的解决方案是什么?
你试图在错误的层次/层上解决问题。配置与SQL server的通信,并开始考虑优化。这是唯一有效的起点。EF的不正确使用会导致与SQL server的通信异常缓慢,这是任何压缩都无法解决的问题,因为串行通信异常意味着多次不必要的数据库往返,而每次往返都会增加处理的延迟时间。我已经看到了一些解决方案(其中一些是我自己做的),其中不正确的EF使用在单个请求处理中创建了数千个延迟加载查询。
是的,它最终可能会用存储过程和自定义查询替换部分EF代码,最坏的情况是放弃整个EF。
如果你的问题是传输的数据量,那么是时候考虑优化和减少传输的数据量到只需要的子集,或者可能在存储过程或视图的SQL服务器上使用一些预处理。顺便说一句。在应用程序设计期间,您应该考虑应用程序将运行的目标环境。
编辑:还有一点。通过WAN与数据库通信并不常见。通常,这样的需求导致实现另一层的业务逻辑,该业务逻辑位于局域网中的服务器上,使用SQL服务器。此业务逻辑层向WAN上的客户端公开web服务。这种体系结构可以减少与数据库通信时的延迟,同时,正确的客户端和服务之间的消息交换体系结构可以带来额外的改进。
SQL Server使用TDS协议。
不管你是使用TCP还是Named Pipes或者"the force"从A到B获取数据
你需要启用或设置某种压缩(谷歌搜索):
- 操作系统级别
- 接口/硬件级别
- 网络级