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

一次对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
50 2s 2.5s
500 2.5s 5.2s

你可能感兴趣的:(对Oracle数据库批量操作的SQL优化)