日期:2014-05-17  浏览次数:20778 次

存储过程执行超长时间
有个统计的存储过程在执行时有6万条记录要统计,我在程序中执行存储过程不一会儿就超出等待调用的时间并报错。
我直接在数据库中执行过程才发生这样6万条记录统计出来要30分钟才能执行完成。

在程序中如何设置一个等待进度条等待SQL数据库返回执行成功标志?

我的存储过程也很简单,把导入数据库中的记录进行读取并对比标准数据,不符合则插入到另一张表中并更新记录对比完成标志;符合则更新记录对比完成标志。

要这么长时间吗~?数据库所在主机为windows2003 r2 安装MS SQL 2008 ,CPU:E8600 2G内存。

------解决方案--------------------
优化存储过程。现在问题的关键是存储过程耗时太多。
那么在循环更新时,
------解决方案--------------------
select RoleUtime,RoleBtime From RoleTable

数据太多,分批读取。
------解决方案--------------------
这个存储过程问题很大,因此30分钟的执行时间很正常。
假设RoleTable表有10万记录,HR_Record 表也有十万记录,那么总执行次数为100000*100000=100亿次。
------解决方案--------------------
探讨

这个存储过程问题很大,因此30分钟的执行时间很正常。
假设RoleTable表有10万记录,HR_Record 表也有十万记录,那么总执行次数为100000*100000=100亿次。