【发布时间】:2010-09-21 07:48:30
【问题描述】:
我有一个存储过程不断失败,并在特定用户上显示错误消息“超时已过期”。
所有其他用户都可以正常调用 sp,甚至我也可以使用查询分析器正常调用 sp——它只需 10 秒即可完成。但是对于有问题的用户,日志显示 ASP 总是挂起大约 5 分钟,然后超时中止。
我像这样从 ASP 页面调用“EXEC SP_TV_GET_CLOSED_BANKS_BY_USERS '006111'”
有人知道如何诊断问题吗?我已经尝试查看数据库中的死锁,但没有找到。
谢谢,
【问题讨论】:
-
“特定用户”是什么意思?运行 SP 的用户,还是查询中的这个 006111?
-
'006111' 是失败的用户 ID,尽管如果我在查询分析器中调用它,SP 会在大约 10 秒内完成。
-
我正要问,用户的名字是“Robert'); DROP TABLE EMPLOYEES;--?”
-
执行上下文有问题吗?也就是说,您可以从 ASP 页面(不是查询分析器)运行这个存储过程,并且只运行这个存储过程并让它工作,还是它仍然超时?
-
就像我说的,其他调用页面的用户可以调用 SP 就好了。我能找到的唯一其他异常情况是 sp 被加载到记录集中,并且该记录集在对该特定用户执行“rsUBanks.MoveFirst”时崩溃了两次。
标签: sql sql-server asp-classic timeout sql-server-2000