症状
将 Microsoft SQL Server 2012 与 Service Broker、数据库镜像或可用性组配合使用时,与 SQL Server 数据库的连接具有较高的延迟,响应时间更长。
原因
出现此问题的原因是,在使用 Service Broker、数据库镜像或可用性组的两个服务器之间进行通信时,TCP 协议的窗口大小不会自动扩展。 TCP 窗口大小决定了在不接收确认的情况下,发件人可以传输的字节数。 客户端从 SQL Server 数据库接收数据时,客户端保留一个常量 TCP 窗口大小。 从 SQL Server 数据库发送大量数据后,客户端上的窗口大小将逐渐下降到0。 因此,连接到 SQL Server 数据库会产生很高的延迟,响应时间会更长。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2012 SP2 的累积更新1 /en-us/help/2976982
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。