情况描述:
数据库是Oracle
每次从表里取出10000条数据 进行计算 结果大概500~1000条 然后把这几百条数据批量插入数据库中 插入的表没有索引 就是很简单的几个字段
第一次执行 大概3S左右就插入成功了 第二次执行一下要50S左右 再往下越来越长。。不知道什么原因 有大佬遇到过吗
还有就是 当这个insert all变慢之后 对数据库进行 ddl操作都会卡死。。。而dml没有影响~
java这边数据库连接池用的druid
sql如下
<insert id="batchInsertArriveInfo" parameterType="java.util.List" useGeneratedKeys="false">
insert all
<foreach collection="list" item="info" index="index">
into
T_ARRIVAL_STATION_INFORMATION
(BUS_PATH_ID,STATION_SN,TASK_STATUS,ARR_TIME,BUS_PATH_NAME,RUN_FLAG,VEHICLE_ID,station_name,station_id)
values
(
#{info.busPathId},#{info.stationSn},#{info.taskStatus},
#{info.arrTime},#{info.busPathName},#{info.runFlag},
#{info.vehicleId},#{info.stationName},#{info.stationId}
)
</foreach>
select 1 from dual
</insert>