很久没来了,很是惭愧!
最近超忙!
长话短说,在V8之后,load就执行读取游标了!
具体办法就是
首先,声明游标;
然后load from 这个游标!
之前就知道load有这个功能,但是一直没测试!
这次的项目,需要在单位时间,对几个数据库的数据进行抽取,转化,入库!
用之前的export出一个文件,然后load 的办法,很难满足效率的需要!
于是测试了load+游标!
先把测试结果大致说一下:
50万条数据,load+游标的方式 完胜 export文件+load的方式
执行时间减少了一半!
从效率的角度上考虑,这个办法是非常不错的!
但是问题出现了:
1、如果load 的过程中断,导致表出现load pending,如果是export 文件+load的方式,可以使用load+terminate(restart)的方式解决!
但是这个游标的作用域仅限于当前环境,load如果异常中断,那么这个游标也就失效了!
所以,目前,除了drop+create表,和load+null文件,没有什么好办法!
2、在做大数据量(千万级)的测试的时候,发现load过程中会导致数据库挂掉,只有db2start之后,数据库才会正常!
简单的分析之后,应该是数据库过大,资源占用过多导致,应该针对大数据量的情况,调整数据库的参数配置!
抛个砖先,大家来讨论一下这种数据转移的解决方案!
收起