错误17886 - 服务器将断开连接

nom*_*olo 10 sql-server sql-server-2008 windows-server-2008-r2

我们在带有sql server 2008 x64 r2的vps服务器上运行一个网站.我们受到了17886错误的轰炸- 即:

服务器将断开连接,因为客户端驱动程序在会话处于单用户模式时发送了多个请求.当客户端在会话中仍在运行批处理时发送重置连接的请求时,或者在会话重置连接时客户端发送请求时,会发生此错误.请联系客户端驱动程序供应商.

这会导致sql语句返回损坏的结果.我已经尝试了几乎所有我在网上找到的建议,包括:

  • 与火星,没有.
  • 有游泳池和没有游泳池
  • async = true,没有

我们只有一个数据库,绝对是多用户.

最近安装了所有东西,所以它是最新的.它们可能是相关的high cpu(虽然不完全根据我所见过的监视器).也与high request rates搜索引擎相关.但是,高CPU /请求不应该导致sql连接重置 - 最坏的情况下我们应该有很高的响应时间或者我拒绝发送响应.

有什么建议?我只是一个开发人员而不是dba - 我需要一个dba来解决这个问题吗?

小智 1

不确定,但您的某些查询可能会导致服务器死锁。

当您再次检测到此错误时

  • 打开 Management Studio(在服务器上,如有需要请安装)

  • 打开新的查询窗口

  • 运行sp_who2

  • 检查blkby列,它是Blocked By的缩写。如果该列中有任何数据,则说明存在死锁问题(通常它应该像我附加的屏幕截图一样,完全为空)。

如果遇到僵局,那么我们可以继续下一步。但现在请检查一下。

在此输入图像描述