对Oracle数据库批量操作的SQL优化

本文记录了一次对Oracle数据库进行批量数据操作时遇到的性能问题及解决方案。通过对比两种不同的SQL语句方法,优化了批量插入的速度,提升了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次对SQL修改,优化操作速度的记录

我需要把edit_stu表数据查出来批量插入到student_m中,
由于SQL批量操作执行速度特别慢,尝试更换SQL语句解决速度问题
根据需要我有两个方法做这个批量操作:

  • 方法1:
	<insert id="insert1" parameterType="java.util.HashMap">
		 begin
        <foreach collection="list" item="item" index="index" separator=";">
        	 insert into student_m ( VERSION_ID, SYS_ID)
        values
            ( #{item.versionId,jdbcType=VARCHAR},
			#{item.sysId,jdbcType=VARCHAR}
        </foreach>
        ;end;
    </insert>
  • 方法2
 <!--拷贝数据到查询表-->
    <insert id="insertCurrentBySelect"  parameterType="java.util.HashMap">
    	INSERT INTO  student_m ( VERSION_ID, SYS_ID)
	    SELECT   VERSION_ID, SYS_ID
      	FROM  edit_stu
	    WHERE VERSION_ID=#{versionId,jdbcType=VARCHAR}
    </insert>

两个方法操作速度对比:

数据量方法1方法2
502s2.5s
5002.5s5.2s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值