我应该在每个SQL操作之后提交,还是执行多个操作然后提交?哪个更有效率?

时间:2014-06-24 19:04:49

标签: sql oracle transactions commit

我需要对SQL提交的SQL场景做一些澄清。

例如:

    1)  DELETE FROM tablename WHERE column_name = 'value';
        COMMIT the above transaction;

    Versus

    2) 
         for (i...n){
            DELETE FROM tablename WHERE column_name ('value');
         }

         COMMIT after 'N' transactions..

考虑N> = 10,在这种情况下,与第一种方法相比,DB上的压力会更好,或者第二种方法与第一种方法具有相同的效果...... 我知道最好的方法是传递多个值IN子句...只需要知道第二个是否优于第一个>?

1 个答案:

答案 0 :(得分:0)

对每个N个事务的提交确实对数据库日志记录工具更快更好。权衡的是,如果必须重新启动该过程,您愿意丢失多少数据。

例如,您要加载10,000,000个批次行。如果进程在第7,543,232行崩溃,那么您可以再次加载多少行?

是的,您要为值执行带有绑定参数(?标记)的prepare语句,然后在每行值的语句句柄上执行一次。