append介绍

/+append/

1、概念:append 属于direct insert,归档模式下append table nologging会大量减少日志,非归档模式append会大量减少日志,append方式插入只会产生很少的undo。

2、优势:使用append,一是减少对空间的搜索;二是有可能减少redolog的产生。所以append方式会快很多,一般用于大数据量的处理。

3、用法

insert /*+append*/ into table1 select * from table2

/*+append*/的作用是在表的高水位上分配空间,不再使用表的extent中的空余空间。

在使用了append选项以后,insert数据会直接加到表的最后面,而不会在表的空闲块中插入数据。使用append会增加数据插入的速度。

建议不要经常使用append,这样表空间会一直在高水位上,除非你这个表只插不删

oracle日志模式

默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nologging是尽量减少日志。

二、使用情况

1、logging模式

这是日志记录的缺省模式,无论数据库是否处于归档模式,这并不改变表空间与对象级别上的缺省的日志记录模式。对于临时表空间将不记录日志到联机重做日志文件。

2、nologing模式

此模式不是不记录日志,而是最小化日志产生的数量,通常在下列情况下使用NOLOGGING

nologing模式通常和append联合使用。

优化方向

EXECUTE IMMEDIATE 'ALTER TABLE table1 NOLOGGING';

insert /*+ append */ into table1 select * from table2; 

commit; 

EXECUTE IMMEDIATE 'ALTER TABLE table1 LOGGING';
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐