鸣谢:http://wxkang123.blog.163.com/blog/static/130209103200910394856677/
nologging运用,不产生日志以提升语句执行效率。事情有那么简单吗,答案是否定的。
在数据迁移或大量的数据insert入库时,由于大量数据的insert或修改,经常引起redo log sync的等待,造成数据库性能缓慢。
因为许多朋友对NOLOGGING的误解,所以许多人在insert数据时,在SQL后加nologging,想通过该用法使操作不采生日记录。但无效果。
这里讨论nologging的具体用法:
数据库操作,只有如下几种情况下不产成redo记录:
1、用sql*load的direct load方式时,不采用redo记录
2、用insert的direct方式,即在append方式insert
3、create table .... as select
4、create index
5、alter table ... move partition
6、alter table ... split partition
7、alter index ... split partition
8、alter index ... rebuild
9、alter index ... rebuild partition
10、INSERT, UPDATE, and DELETE on LOBs in NOCACHE NOLOGGING mode stored out of line
看完老子也没看懂,目前只知道大概作用是不产生日志以提升效率就OK了。
相关扩展:
(1)快速向表中插入大量数据 & Oracle中append与Nologging
http://hi.baidu.com/angel929/item/c2baeb10581bdc443b176e63
(2)关于oracle的NOLOGGING
http://19880614.blog.51cto.com/4202939/1162806
(3)Oracle的Redo的作用及原理
http://www.cnblogs.com/zhualike/archive/2010/04/27/1721887.html