TABLE的logging属性(续)

前天在 “TABLE的logging属性” 文章中留下了一个问题:table的logging属性到底从哪里可以提现出来???

今天在网上找到这么一句话:NOLOGING选项只是在direct-load模式下才不写redo log,nomal DML无效

上篇文章已经验证了nologging属性对update动作是无效的,下面就用direct-load模式来验证下这句话对不对。


1. 删除结构相同的表test1,test2;

TRUNCATE TABLE TEST2;

TRUNCATE TABLE TEST1;


2. 看下表test1,test2的logging属性;

SELECT t.TABLE_NAME,t.LOGGING FROM dba_tables t
    WHERE t.TABLE_NAME IN ('TEST2','TEST1');

TABLE_NAME                     LOG
------------------------------ ---
TEST2                          YES
TEST1                          NO


3. 依然开两个session分别执行insert动作,并观察session的redo变化量;

session1:

SELECT a.VALUE
FROM v$mystat a,v$statname b
WHERE a.STATISTIC#=b.STATISTIC#
     AND b.NAME='redo size';

     VALUE
------------------
         0           ---------执行insert之前的redo size


SQL> INSERT/*+append*/  INTO TEST1  SELECT OBJECT_ID,OBJECT_NAME FROM DBA_OBJECTS;  ---------执行insert动作append即为直接加载模式

49804 rows created.

SQL> commit;

Commit complete.


SELECT a.VALUE
FROM v$mystat a,v$statname b
WHERE a.STATISTIC#=b.STATISTIC#
     AND b.NAME='redo size';

     VALUE
------------------
       48324           ---------执行insert之后的redo size


session2:

SELECT a.VALUE
FROM v$mystat a,v$statname b
WHERE a.STATISTIC#=b.STATISTIC#
     AND b.NAME='redo size';

     VALUE
------------------
         0           ---------执行insert之前的redo size


SQL> INSERT/*+append*/ INTO TEST1  SELECT OBJECT_ID,OBJECT_NAME FROM DBA_OBJECTS; ---------执行insert动作,append即为直接加载模式

49804 rows created.

SQL> commit;

Commit complete.


SELECT a.VALUE
FROM v$mystat a,v$statname b
WHERE a.STATISTIC#=b.STATISTIC#
     AND b.NAME='redo size';

     VALUE
------------------
      1989324           ---------执行insert之后的redo size


这里就可以明显看到nologging属性的差别,真的是有在直接加载的模式下才能看到区别!!!!对不要/*+append*/的insert我也做过测试,产生的redo量差不多。。。

所以/*+append*/一般与nologging搭配一起用,效果更加明显!!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值