因为业务模型是实际提交 后台是ORACLE数据库 COMMIT 会造成ORACLE写日志到磁盘上
COMMIT非常频繁 就严重拖累数据库 从而造成整个系统缓慢!就是 单独一条 UPDATE  TABLE  SET=...    ; COMMIT;   从时间方面上 业务量大时候 每秒就会达到1万次提交;JAVA 有没有哪个功能可以缓冲DML语句 3秒钟后提交?

解决方案 »

  1.   

    先设置con.autocommit为false,过3秒提交自己commit一下
      

  2.   

    时间上很频繁啊 比如以下语句1秒钟执行1->>1万次 不等conn.setAutoCommit(false);
    PreparedStatement ps = conn.prepareStatement("INSERT INTO user(id,name) VALUES(?, ?)");      
    for (int i = 0; i < 10000; i++) {
        ps.setInt(1,i);
        ps.setString(2,"name_"+String.valueOf(i));
        ps.addBatch();
        ps.clearParameters();
    }
    ps.executeBatch(); 
    conn.commit();
      

  3.   

    把conn.setAutoCommit(false)放在最外面,这条语句就执行一次