![传输级错误,如何设置 SQL Server 以避免这些错误?](https://linux22.com/image/487291/%E4%BC%A0%E8%BE%93%E7%BA%A7%E9%94%99%E8%AF%AF%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20SQL%20Server%20%E4%BB%A5%E9%81%BF%E5%85%8D%E8%BF%99%E4%BA%9B%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我在生产中不断收到以下错误(数千个):
A transport-level error has occurred when sending the request to the server.
(provider: TCP Provider, error: 0 - An existing connection was forcibly closed
by the remote host.)
我甚至有一个 1 G + 日志文件。
客户对应用程序的性能不满意。
我无法在开发中产生这个错误,所以我猜测这两个服务器的设置不同。
附加信息:
没有尝试使开发服务器和生产服务器变得相同。
生产:
System:
Microsoft Windows Server 2003
for Small Business Server
Service Pack 2
Computer:
Intel(R) Xeon(R) CPU
E5310 @1.60GHz
1.60 GHz, 3.00 GB of RAM
Physical Address Extension
我相信 SQL Server 是与 SBS 捆绑的 SQL 2005。
该应用程序是在用户桌面系统上运行的 WinForm 程序。
我无法进入开发服务器,但我确信它超过了生产统计数据。我知道 SQL Server 是 2005 标准版。
我还在本地 SQL 2005 Express 上运行了该程序,没有遇到任何问题(并附加了生产文件的副本)。
答案1
我唯一一次看到这个错误是当客户端和服务器强制断开连接时,要么是因为 SQL 服务重新启动,要么是因为网络链接中断。
我能想到的导致这成为生产中而不是开发中的常见问题的唯一原因(如果两个环境其他方面相同)可能是在生产中客户端(或它们使用的数据库访问库)保持连接打开的时间更长。
根据用户报告的性能问题,这可能是由于并发问题导致服务器过于繁忙,连接因此超时。在性能不佳时,您是否对服务器的性能指标(内存/交换使用情况、磁盘 IO、CPU 使用情况、SQL 服务器特定性能计数器等)进行过分析?
您能否提供更多有关设置的详细信息?客户端应用程序和数据库服务器是否都在同一台机器上?您使用的 SQL Server 版本/版本是什么?您使用的是什么访问方法?