其实就是三点,分别是errors,rows,bindsize。当然,最重要的是rows和bindsize。
这里我们首先对于这几个参数进行一些讲解:
1、errors参数用来设定最多允许多少数据入库出错,一旦错误数据超过参数值,sqlldr就会退出。
2、rows表示一次加载的行数,默认值为64。
3、bindsize表示每次提交记录缓冲区的大小,默认256k
这几项按照默认,我这里解析100万行的数据,时间是23分钟2秒多,性能有点太差了。
# 原本的执行脚本
chmod -R 777 [ctl]
source /home/oracle/.bash_profile
sqlldr ictuser/qazwsx@10.5.0.222:1522/orcl control=[ctl] skip=1 log=[log] parallel=true
exit
对这三个参数:
1、rows:一次加载的行数设置为10000行。
2、bindsize:表示每次提交记录缓冲区的大小,设置为10M
3、errors设置为999999,最多允许这些行数据入库出错,防止空行情况。
chmod -R 777 [ctl]
source /home/oracle/.bash_profile
sqlldr ictuser/qazwsx@10.5.0.222:1522/orcl control=[ctl] skip=1 errors=999999 rows=5000 bindsize=10485760 log=[log] parallel=true
exit
我们可以看到,速度提升到1分35秒,提升了10多倍。