ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql*loader试验小记2 direct path load

sql*loader试验小记2 direct path load

原创 Linux操作系统 作者:casper0511 时间:2009-02-27 14:22:21 0 删除 编辑


要导入的表必须已存在,sqlldr不能创建表,sqlldr导入已经存的表,此表可以为空也可以有数据。

在要操作的表上要有Insert,delete权限,用replacetruncate命令清空旧数据。


前期准备:

direct path load要导入的库上执行catldr.sql

direct参数默认是false,打开此功能direct=true

 

badfile记录发生错误的行

discard记录插入成功和未成功的行

 

direct path相对conventional path的优势:

direct path只用“干净的”块,它只使用hwm以上的那些块。

direct path load方式并不是插入操作,所以会提高load的性能。

direct path开始时oracle会锁定表和索引,直到load过程结束。conventional path方式会把每一行记录存到一个数组中,再做插入。

direct path采取多块异步I/O方式写数据文件。

direct path过程中,进程执行自身的写IO,而不是用buffer cache

 

对于direct path的约束:

不能对簇表使用(don’t know why)。

要做load的表上不能有活动的事务。(查询方法:use the Oracle Enterprise Manager command MONITOR TABLE to find the object ID for the tables you want to load. Then use the command MONITOR LOCK to see if there are any locks on the tables.

9->8或更早版本的direct path load是不能的,要做direct path load至少要9.0.1版本,而且客户端要等于/低于服务器的版本。

 

如何提高direct path load的性能:

建立索引,使用临时存储(temporary storage),在每个块被格式化后,新的索引键被放入一个排序(临时)段。旧索引和新键会在load结束时合并然后创建新索引,这时旧索引和临时段的空间被释放。

clip_image001.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11517198/viewspace-558086/,如需转载,请注明出处,否则将追究法律责任。

下一篇: sql函数学习1
请登录后发表评论 登录
全部评论

注册时间:2008-12-08

  • 博文量
    34
  • 访问量
    69142