有表A,现向表A中插入500条记录,使用前台SQL语句,逐条录入.录入前先查询表中是否有相同记录.如果有则不插入,没有则插入.经测发现,这样的结果是large pool消耗极快.往往完成不了全部插入.去掉查询语句后.插入相当快.LARGE POOL没有变化.请详解,为什么?

解决方案 »

  1.   

    有没有做并行插入的处理呀。或者是共享服务器。或者有recovery的动作。一般这个时候才需要large pool的分配。
      

  2.   

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/memory.htm#i52838
      

  3.   

    500条数据,用merge into 语句,一下子就完了。 
    merge into  a 
    using (select id,col1... from b ) c 
    on(a.id=c.id ) 
    when matched then insert (a.id,a.col1...) values (xxx,yyyy); 
      

  4.   

    用merge into 语句,一下子就完了。 
      

  5.   

    使用merge into 500条数据很快的