【发布时间】:2018-03-09 05:47:22
【问题描述】:
在我们的一个系统中,我们在打开与 SQL Server 的连接时遇到随机延迟。
系统运行 Windows Server 2012 R2 Standard 和 SQL Server 2012,与我们的应用程序位于同一台物理机器上。
即使我们的应用程序处于空闲状态,它也会平均每隔几秒执行一次数据库操作。
我们的应用程序执行的数据库操作通常包括 3 个步骤:
- 打开与 SQL 服务器的连接
- 运行存储过程
- 关闭连接
通常第一步只需要几分之一秒,而运行存储过程可能需要更长的时间,具体取决于许多因素。
问题:打开连接可能随机需要 5-13 秒。这种情况很少发生,几小时一次,甚至一天一次。
换句话说,这可能每几千次数据库操作就会发生一次。在这些延迟的时间安排中,我们没有发现任何可辨别的模式。
SQL Server 日志文件中没有任何可疑之处。
运行 SQL Server 分析器似乎不切实际,因为故障可能在 10 到 20 小时内不会出现。
我们在任何其他机器上都没有看到这种现象。
【问题讨论】:
-
您可以检查 Windows 事件日志中是否存在任何可疑的错误或警告
-
您是否使用名称服务器连接到您的数据库?这可能是 NS 解析延迟(DNS 客户端或服务器问题)。您可以考虑的其他事情是服务器安全性,例如如果您使用 SSL。您的证书是最新的吗?
-
@Surjit:Windows 事件日志中没有任何可疑之处。
-
@B3S:我们正在为数据库服务器使用明确的 IP 地址。我们没有使用 SSL。
-
由于问题并不总是可重现的,我猜您将面临一项艰巨的工作。如果未启用,您可以尝试另一个步骤,在 SQL Server Management Studio 中,打开 SQL Server 属性 > 安全 > 登录审核,选择“登录失败和成功登录”。更多,你的 sql server 是否使用默认端口(1433)?该端口是否已在您的防火墙中过滤?
标签: sql sql-server-2012 connection