直接加载和redo!

首先有t1和t2两个表,t1里面没有记录,t2里面有大约40万条记录:

SQL> select count(*) from t1;

  COUNT(*)
----------
         0

SQL> select count(*) from t2;

  COUNT(*)
----------
    402344

下面是表是否记录redo的操作:

SQL> select table_name,logging from user_tables where table_name = 'T1';

TABLE_NAME                     LOG
------------------------------ ---
T1                             YES

SQL> alter table t1 nologging;

表已更改。

SQL> select table_name,logging from user_tables where table_name = 'T1';

TABLE_NAME                     LOG
------------------------------ ---
T1                             NO

SQL> alter table t1 logging;

表已更改。

SQL> select table_name,logging from user_tables where table_name = 'T1';

TABLE_NAME                     LOG
------------------------------ ---
T1                             YES

可以看见在logging模式下,普通加载和直接加载redo size大小差别不是很大!

SQL> alter table t1 logging;

表已更改。

SQL> set autotrace trace stat;
SQL> insert into t1 select * from t2;

已创建402344行。


统计信息
----------------------------------------------------------
       2783  recursive calls
      50954  db block gets
      12904  consistent gets
       5560  physical reads
   45313632  redo size
        670  bytes sent via SQL*Net to client
        564  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          6  sorts (memory)
          0  sorts (disk)
     402344  rows processed

SQL> rollback;

回退已完成。

SQL> insert /*+ append */ into t1 select * from t2;

已创建402344行。


统计信息
----------------------------------------------------------
       1016  recursive calls
       6366  db block gets
       5956  consistent gets
       5608  physical reads
   45712692  redo size
        655  bytes sent via SQL*Net to client
        578  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
     402344  rows processed

可以看见在nologging状态下面,差别就出来了吧!

SQL> set autotrace trace stat;
SQL> alter table t1 nologging;

表已更改。

SQL> insert into t1 select * from t2;

已创建402344行。


统计信息
----------------------------------------------------------
        180  recursive calls
      41450  db block gets
      16625  consistent gets
       9405  physical reads
   44639472  redo size
        672  bytes sent via SQL*Net to client
        564  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          6  sorts (memory)
          0  sorts (disk)
     402344  rows processed

SQL> rollback;

回退已完成。

SQL> insert /*+ append */ into t1 select * from t2;

已创建402344行。


统计信息
----------------------------------------------------------
          4  recursive calls
       5625  db block gets
       5610  consistent gets
       5632  physical reads
      10572  redo size
        656  bytes sent via SQL*Net to client
        578  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
     402344  rows processed


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值