还有,如果在存储过程中用游标或者用SQL来实现我的比对目标,这么大的数据量,肯定要花不少时间,那会不会造成数据库长时间无反应?有什么好的优化法子吗?

解决方案 »

  1.   

    我个人认为,需要了解用户想要了解比对进度的目的是什么?如果目的不明确,可以考虑放弃该需求。
    另外我记得commit是针对DML的,好象不影响游标的循环。
      

  2.   

    问题是这个过程不是每天都必须自动执行的,而是手动执行。且前几次比对的数据量都较大(以后会逐渐减少)。用游标来实现速度效率固然较低,但用户可以清楚知道现在处理了多少还有多少没处理等等;若用几句SQL来实现,用户等待的时间固然少一些但我估计至少也有十几分钟到半小时甚至更长。这时用户基本做不了其他事情,前台客户端程序也不能根据已比对完成的结果进行其他的操作(比如说对未比对成功的数据进行人工比对等等)。