-nologging:
打开了nologging,在归档和非归档模式下都有只有append才能减少redo的生成.
-hints append :
使用append hint可以减少redo信息的产生,可以较快的插入数据,数据迁移。
但是使用了append后,会阻塞其他session对TABLE的DML操作。它在上面加了个
LMODE为6级的锁,用这个的时候一定要小心。在append操作完毕之后要尽快提交或者rollback。
不管表是否在nologging下,只要是direct insert,就不会对数据内容生成undo,也就是不会为insert而记录rowid
-----------------------------------------------
Oracle插入数据有两种模式:常规路径和直接路径。
常规路径插入:Oracle会使用表中的空闲空间,并同时维护完整性约束。
直接路径插入:Oracle直接在高水位线以外分配空间,直接对数据文件进行写操作,绕过了数据缓冲区,而且不维护完整性约束。
直接路径插入不写回滚只写少量的重做日志,因此具有最高的插入效率。
直接路径插入,是在高水点之上分配临时段,将数据插入时进此临时段中。在提交后将高水点提升至临时段之上。
在并行DML模式中,直接路径插入是模式模式,要设置并行DML:
数据库必须是企业版;
并行在session中enable并行DML;
目标表必须设置了并行属性,或者在执行插入时指定并行提示。
直接路径插入的其他考虑因素:
索引维护:Oracle在直接插入结束的时候维护索引,为了避免维护索引的性能影响,可以先删除索引,等插入完
成会在重新建立。--(注意,这里维护索引的时候应该是产生了undo)上面这种设想已经得到验证,看到这样一句话
直接路径插入时,不产生表块的回滚信息,依赖高水点实现回滚。但时,如果表有索引,将会产生索引的回滚信息,
而且索引的块会被读时Buffer cache。也就是说,数据不能“直接插入”进索引。
空间占用:由于并行插入不使用表中现有空间,而在高水位线以外直接分配空间,所以直接路径插入会比常规路
径插入占用更多的空间,在并行插入的情况下更加明显。
锁机制:在直接路径插入过程中,Oracle在表上放置独占锁。因此,用户在直接路径插入操作的同时对表的插入、
更新、删除以及索引的创建和重建操作都是被禁止的。用户可以执行查询操作,查询会返回插入以前的数据。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10678398/viewspace-720575/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10678398/viewspace-720575/
本文深入探讨了Oracle中直接路径插入技术的原理、特点、使用条件及注意事项,包括其与常规路径插入的区别、对索引维护的影响、空间占用、锁机制等方面的内容,帮助读者全面了解如何高效利用直接路径插入提高数据插入性能。
594

被折叠的 条评论
为什么被折叠?



