难道不能用一条SQL解决?类如
insert into table1 (select * from table2)

解决方案 »

  1.   

    我估计是你DB SERVER的配置问题!
    特别是缓存配置!
      

  2.   

    请教pengji(彭乃超):一般而言,1000条数据INSERT需多长时间?我现在是一个循环完毕(insert 1000),就关闭连接,重新连一次。这样,每次就20秒左右,不会越来越慢了。
      

  3.   

    可能是insert to的表上设置了索引,索引可以提高查询速度但导致插入速度变慢,特别是数据越来越多时。建议
    1.精简索引,取消不需要(不常用)的索引
    2.如果有权限的话,在insert操作前,暂时禁用索引,insert完成后,再启用索引
      

  4.   

    to coinicon(硬壳猪) :非常感谢!能举个例子么?另外,禁用索引能应用到什么级别,连接?语句?SQL脚本?还是DBSERVER?
      

  5.   

    为什么要插入一条就提交一次呢?        preStmt.executeUpdate();
            connDest.commit(); //?为什么这样呢?
      

  6.   

    to upc_chenli(chenli): 插入一条就提交一次是为了避免大的损失,如果在插入第1000条记录时出错,岂不是前面的999条插入都费了(rollback),不过现在我已经改为自动提交了。
      

  7.   

    不知道你的数据库是什么数据库,不过索引确实对插入数具有较大影响,尤其是你的数据表中的数据比较大的时候,像oracle数据库达到100万条的时候在索引存在的条件下已经很难差如一条数据了。
       如果你的也是在数据大的时候出现这种情况的话,建议你在插入完数据之后再建立索引。这里索引不是指不重要的索引,是所有的
      

  8.   

    不知道你的数据库是什么数据库,不过索引确实对插入数具有较大影响,尤其是你的数据表中的数据比较大的时候,像oracle数据库达到100万条的时候在索引存在的条件下已经很难差如一条数据了。
       如果你的也是在数据大的时候出现这种情况的话,建议你在插入完数据之后再建立索引。这里索引不是指不重要的索引,是所有的
      

  9.   

    我看还是索引的问题!你把索引建的小一点,尽量用短小点的CHAR,千万不要超过20位长,如果超过了索引就没什么用了!