日期:2014-05-19  浏览次数:20473 次

从一张表中拆分数据到n张表
1,先把excel中的数据传送到server上。
2,再把此excel表格中的数据写到数据库的一张临时表中。
3,再根据某些条件把此张临时表的数据分别插入到n张表中。再拆分这张临时表的过程中,用了9个存储过程,就是存储过程调用存储过程。其中里面还有嵌套的游标,效率极低下。

经常会发生timeout的事情。我直接在服务器上执行这些存储过程,查询分析器的时间是300秒,执行是成功的。如果在程序中调用存储就是会发生超时(timeout)

是否有什么方式来控制连接超时或者有什么异步方式,就是提交了以后,控制权就交给sql   server了,大家帮忙看看?

谢谢!

------解决方案--------------------
覺得主要還是優化代碼。。。。。。。。。。
------解决方案--------------------
1最根本的解决方法是查出慢的原因,并排除
2不知道你通过什么连接sql server的,如果ado或者ado.net,都是有选项设置超时时间的,
CON.CommandTimeout 命令超时时间,你需要的估计是这个,秒为单位,你可以设置成500或者更大
CON.ConnectionTimeout 连接超时时间

------解决方案--------------------
樓上的建議可以
但如果你的那些數據,可以分成若干塊處理,是不是也可以。
用異步方式對臨時表中的數據分多次處理,每次的處理時間應該不會超時了吧,對其他部分也不會有什么影響。