我们将 SQL Server 2005 数据库移至新的物理服务器,从那时起,它一直在终止任何持续 30 秒的连接。
我们在 Oracle SQL 开发人员中遇到了这种情况,并且在使用 pyodbc 从 python 连接之前一切正常,现在 python 在 30 秒后返回此错误:
('08S01', '[08S01] [FreeTDS][SQL Server]从服务器读取失败 (20004) (SQLExecDirectW)')
我们将 SQL Server 2005 数据库移至新的物理服务器,从那时起,它一直在终止任何持续 30 秒的连接。
我们在 Oracle SQL 开发人员中遇到了这种情况,并且在使用 pyodbc 从 python 连接之前一切正常,现在 python 在 30 秒后返回此错误:
('08S01', '[08S01] [FreeTDS][SQL Server]从服务器读取失败 (20004) (SQLExecDirectW)')
首先,您需要配置 sql server 以查看是否正在发生任何活动。寻找运行缓慢的查询、CPU 和内存瓶颈。
您也可以像这样在查询字符串中包含超时:“Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;Connection Timeout=30”; 并根据需要扩展该号码。
但请记住,“超时”并不意味着连接时间,这只是在尝试建立连接之前等待的时间,然后终止。
我认为这个问题更多地与数据库性能或网络问题有关。
也许检查您的远程查询超时?它应该默认为 600,但也许它设置为 30?信息在这里