现在有1万条数据,每条数据需要调用一个存储过程来再取得相关数据,以前的做法是直接用主线程一条一条的取,速度当然是很慢了!后来又改为用10个线程来取,但是发现速度并没有提高!最后又改为除主线程之外又只开一了1个线程来处理,发现速度大大提高!
跟踪了一下数据库,发现开10个副线程的时候,每个存储过程的执行时间为46ms,
开1个副线程的时候,每个存储过程的执行时间最多16ms,有的甚至更少!
对此比较困惑,当时也考虑到数据库(sql server)的负荷问题,所以跑了好几次,每次结果都差不多!请各位高人指点!

解决方案 »

  1.   

    不要和FlashGet之类的多线程下载相混淆,多线程并一定不能改善。多线程下载之所以快,是因为网络状况不太好以及服务器对连接的限速。如果网络畅通,比如局域网内,多线程和单线程下载没什么差别。
      

  2.   

    同意楼主的,对数据库的这种连接没啥用。建议用单线程,SQL 语句加LOCK============================================================
    这里有大查技术文档,源码,供大家下载,这里还有好多其它好东西
    C#写的搜索引擎源码
    网址:www.dvpx.com
    ============================================================