现有一个比较大的数据库的更新,数据库为sql server,如果不开线程,只用平常的单线程处理方式,更新完则需要大概1个小时,所以现在想用多线程实现,但是以前从来没有做过多线程,都该注意些什么呢?现在我想把这组更新假如分为独立的两组(这两组数据更新之间没有关联关系,但是都是对一个表进行操作),启动两个线程来对数据更新,在需要更新的数据上没有关联关系,但是他们需要共用一个数据库联接和同一个事务,这样可以不?如果可以都需要注意什么呢,比如数据库连接,事务需要什么特殊处理吗!(说明:现在对数据库的更新是由一组庞大的数据对同一sp的多次调用实现的)谢谢各位!

解决方案 »

  1.   

    组合sql
    一次性插入其他的暂时没想到
      

  2.   

    但是他们需要共用一个数据库联接和同一个事务,这样可以不?I think you should not do it. do not share a connection/transaction between threads.and I think you should pay attention to deadlock, it is very difficult to resolve.
      

  3.   

    http://community.csdn.net/Expert/topic/4344/4344901.xml?temp=.3762171
      

  4.   

    的确是话语没有组织好,大家见谅!
    to:xiaomatian(趴趴熊◎%#……※×) 
    现在的数据操作就是对数据库的更新,插入!to:kisshere((美资公司 look for .net java高级开发员 技术好 英) 
    比如我现在有10组数据,现在的做法是对每组数据分别调用了存储过程,这样的话,就得调10次!为了速度,我考虑开10个线程分别调用,为什么会有死锁呢?共用一个数据库联接和事务只要是考虑全部提交或者全部回滚!to:xwg_hf(海风)
    谢谢,但是我主要想知道多个线程可以共用一个事务吗?如果可以,该注意什么呢?因为代码改动的话工作量比较大!所以先看看可行不!