在SQL中执行查询时出现EOFException

问题描述

代码在过去1年中正常运行,但是从过去1周开始,在执行选择查询时出现EOFException:查询如下

SELECT t1.`date`,t1.`code`,t3.`followup_status`
FROM `daily_data_update` AS t1
LEFT JOIN followupstatus AS t3 ON t1.followup_status = t3.id
LEFT JOIN users AS t2 ON t1.user_id = t2.id
WHERE t2.id IS NOT NULL
  AND t2.user_region = 'scotland'

当我尝试从sql中执行查询时,查询工作正常,但是当实用程序尝试执行此查询时,该实用程序卡住了。 当我重新启动该实用程序时,它可以正常运行,然后在2-3小时后再次卡住,一小时后给出EOFException。

例如,我已经在5:00 PM重新启动了该实用程序,因此,它可以正常工作到7:00 PM,并且当它在7:00 PM开始执行此查询时,该实用程序会卡住,然后在以下位置提供EOFException 8:00 PM 该问题在生产中出现,但无法找到根本原因。

某些使用MysqL和Mariadb的人建议增加net_read_timeout变量的值,但由于我正在使用sqlServer 2012并且找不到任何此类变量,所以我无法增加它。

解决方法

假设您的实用程序与SQL Server不在同一台计算机上,请尝试一下。基本上,Remote query timeout设置可能是您的罪魁祸首(考虑到提到一个小时的截止时间,情况可能就是这种情况)。

对于SQL Server,右键单击服务器,然后选择properties。然后,在Connections选项卡上,可以检查并将“远程查询超时”的值更改为0。在我的屏幕快照中,该值设置为600(10分钟)。如果您的屏幕显示3600,则很可能找到了截止的原因。

enter image description here