3

我有一个 Java webapp 访问在同一台机器上运行的 MS SQL Server 2012 上的 MSSQL 数据库。

一些查询在恰好 3 秒后失败,原因如下:

com.microsoft.sqlserver.jdbc.SQLServerException: The query has timed out.

它每天发生几次,在早上,当应用程序负载不重时。
平均而言,查询花费的时间不到 50 毫秒。

我使用的是 Microsoft JDBC Driver 4.0,即使我statement.setQueryTimeout(0);
在服务器上使用远程查询超时设置为默认值(600 秒),查询也会在 3 秒后失败。

知道为什么查询在 3 秒后失败吗?

编辑

以下是一些查询:

UPDATE CampaignCalls SET note = 'Short Text' WHERE (saveTime IS NULL) AND (agent = ?) 

这个更新不超过 50 行

INSERT INTO CampaignCustomers (campaignId, clientId, completed, callTime)
SELECT ?, clientId, 0, callTime 
FROM CampaignCustomers WITH (NOLOCK) WHERE campaignId = ?

这个复制不超过 1500 行。

与服务器的连接不会中断。稍后我将重用它,没有任何问题。

我想知道为什么是3秒?还有其他我没有看到的超时设置吗?即使表因某种原因被锁定,为什么查询正好在3 秒后超时?

谢谢你们!

4

0 回答 0