1.oralce plsql 存储过程 循环处理数据,(插入更新还有其他一些逻辑),数据量大概1000万
2.使用job 调起来的,连续执行了两遍(第二遍执行,因为所有数据都已经存在,所以只做update以及其它逻辑)
3.第一次用时7小时,第二次用时1小时
我的疑惑就是为什么两次执行时间相差这么大
2.使用job 调起来的,连续执行了两遍(第二遍执行,因为所有数据都已经存在,所以只做update以及其它逻辑)
3.第一次用时7小时,第二次用时1小时
我的疑惑就是为什么两次执行时间相差这么大
2.因为第一次JOB执行时,需要把用到的SQL放到buffer里,数据库来解析;
第二次JOB执行时,大量的重复的SQL已经在Buffer里,不需要重新解析了。就省了一些时间。
存储在服务器端,大大提升后续的执行效率
但是,如果只是做一次操作,楼主的循环处理就变得很不能让人满意了。