append与nologging的使用

select * from v$version;--10.2.0.1.0
 首先测试非归档下append,nologging,append+nologging的比较

1.非归档模式 append,nologging,append+nologging 三种情况数据产生REDO的对比
SQL> archive log list
数据库日志模式       非存档模式
自动存档             禁用
存档终点             USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列   567
当前日志序列        569

create table t as select * from dba_objects where owner='GWM';
select name,value,class from v$sysstat where name='redo size'; --7653452

insert into t select * from dba_objects;--86894行插入  什么都没使用
select name,value,class from v$sysstat where name='redo size'; --17362192

insert /*+append*/ into t select * from dba_objects;--86894行插入   append的使用
select name,value,class from v$sysstat where name='redo size';--17414176


select (17362192-7653452) redo1,(17414176-17362192) redo2 from dual;   
     REDO1      REDO2
---------- ----------
     9708740    51984

 

drop table t;
create table t nologging as select * from dba_objects where owner='GWM';
select name,value,class from v$sysstat where name='redo size';--27239040

insert into t select * from dba_objects;--86894行插入   单独nologging的情况下

select name,value,class from v$sysstat where name='redo size';--36950884

insert /*+append*/ into t select * from dba_objects;--86894行插入 append+nologging一起使用

select name,value,class from v$sysstat where name='redo size';--36994588

 

select (36950884-27239040) redo1,(36994588-36950884) redo2 from dual;
     REDO1      REDO2
---------- ----------
    9711844       43704

 

 

再测试归档下append,nologging,append+nologging的比较


2.归档下:append,nologging,append+nologging 三种情况数据产生REDO的对比
select flashback_on from v$database; --NO
SQL> archive log list
数据库日志模式       存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列   568
下一个存档日志序列   570
当前日志序列         570
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG

create table t as select * from dba_objects where owner='GWM';
select name,value from v$sysstat where name='redo size'; --262896

insert into t select * from dba_objects;--86894行插入  均无使用append及nologging

select name,value from v$sysstat where name='redo size';--9975812  使用append


 

insert /*+append*/ into t select * from dba_objects;--86894行插入 
select name,value from v$sysstat where name='redo size';--19765100

select (9975812-262896) redo1,(19765100-9975812) redo2 from dual;
     REDO1      REDO2
---------- ----------
       9712916    9789288

truncate table t;
alter table t nologging;
select name,value from v$sysstat where name='redo size';--19881868

insert into t select * from dba_objects;--86894行插入  只使用nologging
select name,value from v$sysstat where name='redo size';--29590564

insert /*+append*/ into t select * from dba_objects;--86894行插入   使用append和nologging

select name,value from v$sysstat where name='redo size';--29627424

select (29590564-19881868) redo1,(29627424-29590564) redo2 from dual;
     REDO1      REDO2
---------- ----------
      9708696        36860


总结:
非归档       
append    9708740    51984
append与nologging一块使用    9711844    43704
归档下       
append    9712916    9789288
append与nologging一块使用    9708696    36860


可以看出

1. 不管哪种模式下append要与nologging方式联用才能达到很好的效果。

2. 非归档与归档方式,只用NOLOGGING是不起效果的。

3. 非归档下append已达到不错的效果,但不及与nologging的联用方式。

4. 归档下单append起不到效果。


NOLOGGING插完后最好做个备份。

另外,如果库处在FORCELOGGING模式下,此时的nologging方式是无效的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值