博客
关于我
数据库批处理和一般处理的快慢比较
阅读量:635 次
发布时间:2019-03-14

本文共 2445 字,大约阅读时间需要 8 分钟。

批处理模式与一般处理模式的对比分析

在数据库操作中,批处理模式和一般处理模式是两种常见的处理方式。本文将从性能和效率两个方面,探讨这两种模式的异同点。

批处理模式的核心优势在于其处理效率。传统的处理模式中,每次数据库操作都需要单独建立连接和预编译语句,这在面对大量数据时会带来显著的性能瓶颈。而批处理模式通过将批量数据一次性提交到数据库,能够大幅减少连接建立和语句执行的次数,从而显著提升操作速度。

以下是两种模式的实现示例:

// 通用处理模式示例public static void commonHandle() {    Connection con = null;    PreparedStatement pstmt = null;    try {        long startTime = new Date().getTime();        con = DbUtils.getConnection();        con.setAutoCommit(false);        String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";        for (int i = 100000; i < 200000; i++) {            pstmt = con.prepareStatement(sql);            pstmt.setInt(1, i);            pstmt.setString(2, "员工" + i);            pstmt.setFloat(3, 40000f);            pstmt.setString(4, "研发部");            pstmt.executeUpdate();        }        con.commit();        long endTime = new Date().getTime();        System.out.println("commonHandle执行总时长:" + (endTime - startTime));    } catch (Exception e) {        e.printStackTrace();        try {            if (con != null && !con.isClosed()) {                con.rollback();            }        } catch (SQLException throwables) {            throwables.printStackTrace();        }    } finally {        DbUtils.closeConnection(null, pstmt, con);    }}
// 批处理模式示例public static void batchHandle() {    Connection con = null;    PreparedStatement pstmt = null;    try {        long startTime = new Date().getTime();        con = DbUtils.getConnection();        con.setAutoCommit(false);        String sql = "insert into employee(eno,ename,salary,dname) values(?,?,?,?)";        pstmt = con.prepareStatement(sql);        for (int i = 200000; i < 300000; i++) {            pstmt.setInt(1, i);            pstmt.setString(2, "员工" + i);            pstmt.setFloat(3, 40000f);            pstmt.setString(4, "研发部");            pstmt.addBatch();        }        pstmt.executeBatch();        con.commit();        long endTime = new Date().getTime();        System.out.println("batchHandle执行总时长:" + (endTime - startTime));    } catch (Exception e) {        e.printStackTrace();        try {            if (con != null && !con.isClosed()) {                con.rollback();            }        } catch (SQLException throwables) {            throwables.printStackTrace();        }    } finally {        DbUtils.closeConnection(null, pstmt, con);    }}

通过以上代码对比,可以看出批处理模式的核心优势在于一次性处理大量数据,显著提升了操作效率。在实际应用中,一个表字段越多,SQL语句越复杂时,批处理模式的优势会更加明显。

转载地址:http://ujooz.baihongyu.com/

你可能感兴趣的文章
oracle--用户,权限,角色的管理
查看>>
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
Oracle、MySQL、SQL Server架构大对比
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>
Oracle中merge into的使用
查看>>
oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
查看>>
oracle中sql的case语句运用--根据不同条件去排序!
查看>>
Oracle中Transate函数的使用
查看>>
oracle中关于日期问题的汇总!
查看>>
Oracle中常用的语句
查看>>