ITPub博客

首页 > Linux操作系统 > Linux操作系统 > nologgin和append

nologgin和append

原创 Linux操作系统 作者:wadekobe9 时间:2012-04-06 17:03:47 0 删除 编辑

-nologging:

打开了nologging,在归档和非归档模式下都有只有append才能减少redo的生成.

 

-hints  append  :

使用append  hint可以减少redo信息的产生,可以较快的插入数据,数据迁移。

 

但是使用了append后,会阻塞其他sessionTABLEDML操作。它在上面加了个

LMODE6级的锁,用这个的时候一定要小心。在append操作完毕之后要尽快提交或者rollback

 

不管表是否在nologging下,只要是direct  insert,就不会对数据内容生成undo,也就是不会为insert而记录rowid

 

-----------------------------------------------

 

Oracle插入数据有两种模式:常规路径和直接路径。

常规路径插入Oracle会使用表中的空闲空间,并同时维护完整性约束。

直接路径插入Oracle直接在高水位线以外分配空间,直接对数据文件进行写操作,绕过了数据缓冲区,而且不维护完整性约束。

 

直接路径插入不写回滚只写少量的重做日志,因此具有最高的插入效率。

 

直接路径插入,是在高水点之上分配临时段,将数据插入时进此临时段中。在提交后将高水点提升至临时段之上。

 

在并行DML模式中,直接路径插入是模式模式,要设置并行DML

 

数据库必须是企业版;

并行在sessionenable并行DML

目标表必须设置了并行属性,或者在执行插入时指定并行提示。

 

直接路径插入的其他考虑因素:

索引维护:Oracle在直接插入结束的时候维护索引,为了避免维护索引的性能影响,可以先删除索引,等插入完

成会在重新建立。--(注意,这里维护索引的时候应该是产生了undo)上面这种设想已经得到验证,看到这样一句话

直接路径插入时,不产生表块的回滚信息,依赖高水点实现回滚。但时,如果表有索引,将会产生索引的回滚信息,

而且索引的块会被读时Buffer  cache。也就是说,数据不能直接插入进索引。

 

 

空间占用:由于并行插入不使用表中现有空间,而在高水位线以外直接分配空间,所以直接路径插入会比常规路

径插入占用更多的空间,在并行插入的情况下更加明显。

 

锁机制:在直接路径插入过程中,Oracle在表上放置独占锁。因此,用户在直接路径插入操作的同时对表的插入、

更新、删除以及索引的创建和重建操作都是被禁止的。用户可以执行查询操作,查询会返回插入以前的数据。

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

请登录后发表评论 登录
全部评论

注册时间:2010-11-30

  • 博文量
    36
  • 访问量
    58173