oracle sqlload速度加快,Oracle sqlldr导入数据使用默认值和提高性能的方法

oracle sqlload速度加快,Oracle sqlldr导入数据使用默认值和提高性能的方法

在实际中常常有大量的数据需要导入到目前的数据库表中,Oracle提供的sqlldr命令很好的meet了这个需求。在使用的过程中,我们发现,如果在数据库的table端的Column中设置default值,但是使用sqlldr就不会起作用,也就是默认值没有设置成功,所以需要设置默认值得时候,我们将默认值写到了ctl文件中。ctl文件如下:

Load data

infile 'd:\temp\buser.txt'

Append

into table tmp_temp

TRAILING NULLCOLS

(

phonenumber ,

addtime sysdate,

remark "suit"

)

在导入大量数据的时候i,sqlldr往往不敬人意,在导入的时候存在效率问题,可以通过一下几种方式提高sqlldr的速度.

1. 使用direct=Y 这是速度提高最快的方式

2. 使用大的readsize/streamsize 提高读写数据的缓冲区的大小

readsize 的最大值为21971520(20M). streamszie的最大值不清楚,我自己一般设置为21971520

3. 使用大的bindsize (只对conventional path load有效) , 提高一次提交的数据量, 效果也比较明显.

4. 使用大的columnarrayrows . Oracle9i的最大值在750000-800000之间,

Number of rows for direct path column array 提高direct load的效率,

5. 使用并行load, 最好运行两个不同的sqlldr程序, 指定每个ctl文件加载不同的内容.

6. 先删除加载表上的索引和约束. 具体效果不是很清楚, 但是, 肯定可以提高加载的速度.

7. 最好将加载表设置成nologging/unrecoverable, 对于conventional path load比较有用, 减少重做日志的写入.

8. 加大date_cache的大小, 在加载表有日期字段的时候能够提高加载的速度.

date_cache -- size (in entries) of date conversion cache (Default 1000)

相关推荐

2026 年 FIFA 世界杯、门票、款待、酒店住宿、球迷票和旅游套票
买马十二生肖对应号码(买马十二生肖表)
365体育靠谱

买马十二生肖对应号码(买马十二生肖表)

📅 07-13 👁️ 7219
如何合理计算融资余额?融资余额的变化对市场有何预示?
红楼梦里不止一次出现的“金银锞子”,到底是什么东西?
Google Play 翻墙全攻略:突破地域限制访问海外应用
365bet平台规则

Google Play 翻墙全攻略:突破地域限制访问海外应用

📅 07-18 👁️ 4842
快手简析 一、 快手 发展历史1. 起源与初创(2011年3月)  快手 的前身为“GIF快手”,诞生于2011年3月,由程一笑创...