我在做一项目时,客户的技术人员指出在每个功能模块处理时
 要以1000件为单位,进行commit处理。
   例如,我从A表中根据条件抽出数据,插入到B表,本来用一个语句
   
   insert into A  select  ... from B where 条件1 and 条件2
   可以很简单的完成。
 
 每n件一提交,这让我感到很晕乎,有啥理论依据吗? 当大数据量,比如千万级以上时,是不是需要进行n件一提交?(考虑到内存的占用量)

解决方案 »

  1.   

    一提交一般回滚段会有压力的。
    ,如果会滚段不够用,那就吃不了都着走了
    还是分开commit 比较[/size]好。
      

  2.   

    一提交一般回滚段会有压力的。
    ,如果会滚段不够用,那就坏了大事
    还是分开commit 比较好。
      

  3.   

    分开提交是合理的,但不能固定1000件为单位,应该还要看你SQL怎么划分方便、清晰,进行commit处理。
      

  4.   

    commit 之后,要写日志,写数据文件,更改SCN,联机日志满了还要发生切换,还要写Archive日志,
    n条commit1次,保证你的I/O可以连续干活。
    n太大,回滚段可能会容量不够,那时候会出现快照过旧的错误,呵呵。
    n要设置为一个合理的值,不要过大,不要过小。
      

  5.   

    个人感觉没有这个必要,一句sql可以搞定的话效率应该是最高的,想你说的情况分批提交完全是多次一举,现在都用undo表空间,那个没有10g以上,容量的问题根本不需要考虑。