大家早,
我在处理 MS SQL Server 2000 中的查询超时问题时遇到了麻烦。它用作 Intuitive ERP 的后端,Intuitive ERP 是一个基于 MS Access 的相当古老的 ERP 系统。
我的问题是,在执行规划计算时,即执行大量查询的过程,我们遇到 SQL 超时错误。
我最初使用分析器来确定有问题的查询(DELETE 查询),并在再次运行之前手动执行该查询,这似乎有效。但是,在后续运行中,它会在稍后阶段超时。由于我的经理接手了这项工作,因此这里的细节有些模糊,但从她告诉我的情况来看,我猜这是一个 SELECT 或 INSERT 查询。
直接在服务器上执行任何这些查询(使用企业管理器)每次都会导致及时响应,似乎没有理由超时。
我意识到这没什么可说的,所以我想我的问题更多的是什么样的事情会导致查询超时?我们过去曾遇到过磁盘空间问题,但这不是这里的问题。我还检查了网络连接:ping 大约在 1ms 后返回,所以这应该不是问题(此外,分析器显示失败的查询花费了过多的时间,这表明这是服务器端的问题)。
谢谢你的时间。
答案1
与您临时运行语句相反,应用程序可能在用户事务的上下文中运行所有语句,因此在这种情况下可能会有更多的锁累积。然后,数据库中的并发用户活动可能会导致阻塞,如果阻塞时间过长,则会导致超时。
不幸的是,由于我们讨论的是第三方应用程序,我不确定在 SQL Server 端你能做多少事情。如果应用程序公开任何超时设置,增加它们可能是个好主意,也许可以大幅增加。如果可能的话,在非高峰时间运行这些批处理过程也可能有帮助。