通常连接到我们的 SQL Server 2005 集群实例时需要不到 20 毫秒,但有时可能需要更长的时间,7-30 秒。
创建新连接的潜在瓶颈是什么?
答案1
可能有很多原因:
- 服务器暂时内存不足,因此无法创建新的登录
- 服务器暂时耗尽线程,因此无法创建新的登录
- 所有 CPU 都因其他活动而负载过重,因此无法处理登录
- IO 子系统超载,因此服务器无法读取必要的元数据来了解连接的安全性、默认数据库等
- 网络过载,因此往返服务器和返回应用程序的时间比平时更长
- 可能存在一个登录触发器,其运行时间会根据许多因素而变化,包括上述所有因素
- 您尝试连接的数据库可能仍处于上线过程中
- 您尝试连接的数据库可能存在损坏,导致页面 IO 闩锁等待(长时间运行的 IO)
- 应用程序或登录触发器执行的操作可能存在锁定争用问题
您可能会在 SQL Server 错误日志中发现有关上述任何内容的一些错误,或者必须使用 DMV 进行更多挖掘才能查看哪些内容正在消耗资源。
希望这可以帮助!
答案2
除了上述 Paul 的建议外,我还要补充一点
- 检查机器是否没有进行大量交换。
- 如果您的环境根据 PTR 记录对连接进行身份验证,那么名称解析是否会出现延迟?
当客户端无法快速验证身份时,您是否注意到服务器上有其他症状,最有可能是现有连接上的查询处理速度下降?如果是这样,我会寻找潜在原因,可能是软件或硬件损坏,例如磁盘故障。