有个界面中 可以让用户扫入条码,数据量在2000条以上,
 当保存时我的做法是: 用到sql 中的这个sp_xml_removedocument过程,在客户端行成xml, 一次把条码数 据作为参数传到存储过程中,在数据库端形成一个临时表,  这个临时表中的每一条数据又要以某些条件查找在 一个表中是否存在,不存在就保存.  我是用游标做的.. 然后,这个界面我用了多线程   问题是,在速度上客户超不满意,我也不知道还能怎样优化了,各位有经验的能否指定一二,有更好的作法没?
 
  

解决方案 »

  1.   

    select count(*) from tbl where no=01
      

  2.   

    放在前台??最后在 查找该条码是否存在时,我岂不是要把所有数据都load 到前台去?
      

  3.   

    如果只是插入条码不如将
    所有条码放在一个参数中 传给STORE PROCEDURE然后在STORED PRODUCTE中 PARSE
    如果你有索引的话
    2000条应该非常块的
      

  4.   

    要找出那里慢了是查询 还是插入
    还是sp_xml_removedocument慢了
      

  5.   

    to :Moon1(静静的黎明) 
         我认为不好使,现在那个存储表才70多w条记录,而且这个表的数据每天都会大量增加
        如果load到客户端,不管是网络流量还在客户端内存都是一个大的开销,to cancerser: 
            多开几个线程倒是可以哦 
             另外 定义成主键:你的意思是可以用到聚合索引吗?
      

  6.   

    你用游标就是为了循环吧, 把这个循环放前台来. 速度会快很多的."这个临时表中的每一条数据又要以某些条件查找在 一个表中是否存在,不存在就保存.  我是用游标做的.. 然后,这个界面我用了多线程"我怀疑你是在用游标遍历这2000条数据, 再判断是否存在. 
    如果是这样的话, 建议你把这个临时表跟数据库中的那个表做一个left join查询. 就可以知道哪些存在,哪些不存在了.