如果我的存储过程中的代码有500行,
方案1:在最后一行写一个commit
方案2:在每50行写一个commit
问题:这两种方法哪种好?

解决方案 »

  1.   

    代码和commit没关系,关键看你DML处理的数据量。
    如果undo空间足够,尽可能一次行提交。
      

  2.   

    视需求而定如过程一旦出现异常,需全部撤销的话,在所有任务处理完后提交
    如过程中的某些任务需处理完就commit,那就在某任务处理完时提交
      

  3.   

    如果你50行一个commit,那第二个50行commit时候报错了,那你还得把上一个commit的数据回滚,这样岂不是又的多几行的代码了?建议一次提交。
      

  4.   

    Commit是与事物有关系的,如果提交后,就不能回滚了
      

  5.   

    commit就全部提交了。500行,一次提交吧。1w行以下尽量都一次提交