问题描述:
页面触发一个事件 EventA,EventA 调用某个方法 MothodB,MothodB 执行一个存储过程 SP_C,SP_C 中执行数据插入工作,只插入一条数据到表 TableD 中。(SP_C 运行时间较长 20s甚至更久)
当我在页面触发 EventA 时(只触发了一次),奇怪的事情发生了:TableD 中插入了三条同样的记录(插入时间不同,时间间隔:8~10 s)
直接运行存储过程不会发生这种情况,通过应用程序调用则发生。
为什么???
环境: windows server 2003 + sqlserver 2005
SP_C只插入一条数据为什么运行20s?
最有可能的是,程序中有bug。建议仔细检查程序。
我觉得很有可能是用户重复提交,执行时间过长的方法最好提交时先禁用按钮。免得用户等不及多点几次~我还见过用户喜欢双击的,不管点什么都是双击,都要小心。
楼上说的有道理,尤其是一些耗时比较长的操作,尽量使用异步造作,并再界面上或逻辑层作出重复点击操作的判断!这个在比较重要的应用中很重要!
有很多种可能
1因为关联多 锁表
2还有就是你看看你类型是否写错了
2005很混蛋 不分varchar和char的
你类型写错了他会自动判断的
但是会变得异常的慢