Oracle:nologing + append

只有以下四种SQL语句可以使用NOLOGGING选项:
1、CREATE TABLE ... AS SELECT ...
2、CREATE INDEX
3、ALTER INDEX ... REBUILD
4、DIRECT PATH INSERT

对于create table table_name ... as select ... :

create table bb logging     as select * from aa : 大量的redo + 有undo

create table bb nologging as select * from aa : 少量的redo + 无undo

对于insert语句:

表logging     + 记录非append : 大量的redo + 有undo

表logging     + 记录   append : 大量的redo + 无undo

表nologging + 记录非append : 大量的redo + 有undo

表nologging + 记录   append : 少量的redo + 无undo

 

============================================================================================================================

 

ORACLE Nologging相关知识

http://blog.csdn.net/huanghui22/article/details/1337420

 

 

晶晶实验二十二之 直接路径插入篇

http://www.itpub.net/viewthread.php?tid=965298&extra=page%3D4%26amp%3Bfilter%3D0%26amp%3Borderby%3Dviews 

append 数据不需要经过buffer cache , , 直接在hwm以上insert 到数据文件 , 不产生undo信息 , 利用hwm回滚,回滚后hwm不回退
append 索引需要经过buffer cache, 但是是写入hwm之下的部分

 

查看高水位点:select blocks, empty_block from dba_tables where table_name='T1' and owner='';

查看头文件和头块号,用来转储: select header_file,header_block from dba_segments  where segment_name='T1' and owner='';

查看块分布:select extent_id ,file_id,block_id,blocks from dba_extents where segment_name='T1' and owner='';

你可能感兴趣的:(oracle)