nologging对delete以及update效果不大

SQL> create table a (id int);

Table created.

SQL> begin for i in 1..10000 loop
  2  insert into a select i from dual;
  3  end loop;
  4  commit;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL> insert into a select * from a;

10000 rows created.


SQL> desc a;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER(38)


SQL> begin for i in 1..10000 loop
  2  insert into a select i from dual;
  3  end loop;
  4  commit;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL> select count(*) from a;

  COUNT(*)
----------
     10000

SQL>
SQL> set autotrace traceonly;
SQL>


----------
--insert

SQL>insert into a select * from a;

10000 rows created.


Execution Plan
----------------------------------------------------------
   0      INSERT STATEMENT ptimizer=ALL_ROWS (Cost=8 Card=20000 Bytes
          =260000)

   1    0   TABLE ACCESS (FULL) OF 'A' (TABLE) (Cost=8 Card=20000 Byte
          s=260000)

 

 

Statistics
----------------------------------------------------------
         58  recursive calls
      10238  db block gets
       3284  consistent gets
          0  physical reads
    2373796  redo size
        643  bytes sent via SQL*Net to client
        538  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      10000  rows processed

SQL>insert into a nologging select * from a;

10000 rows created.


Execution Plan
----------------------------------------------------------
   0      INSERT STATEMENT ptimizer=ALL_ROWS (Cost=8 Card=20000 Bytes
          =260000)

   1    0   TABLE ACCESS (FULL) OF 'A' (TABLE) (Cost=8 Card=20000 Byte
          s=260000)


Statistics
----------------------------------------------------------
          5  recursive calls
      10193  db block gets
      10101  consistent gets
          0  physical reads
    2370584  redo size
        643  bytes sent via SQL*Net to client
        548  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      10000  rows processed

SQL> rollback;

Rollback complete.

SQL>insert /*+ append */ into a nologging select * from a;

10000 rows created.


Execution Plan
----------------------------------------------------------
Statistics
----------------------------------------------------------
         93  recursive calls
         45  db block gets
         94  consistent gets
          0  physical reads
     136144  redo size
        627  bytes sent via SQL*Net to client
        562  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
      10000  rows processed

SQL>
SQL>
SQL> rollback;

---------------
--delete


SQL>delete from a;

10000 rows deleted.


Execution Plan
----------------------------------------------------------
   0      DELETE STATEMENT ptimizer=ALL_ROWS (Cost=1 Card=1 Bytes=3)
   1    0   DELETE OF 'A'
   2    1     INDEX (FULL SCAN) OF 'SYS_C005064' (INDEX (UNIQUE)) (Cos
          t=1 Card=1 Bytes=3)

 

 

Statistics
----------------------------------------------------------
          9  recursive calls
      10450  db block gets
         24  consistent gets
          0  physical reads
   2540712  redo size
        642  bytes sent via SQL*Net to client
        522  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      10000  rows processed

SQL> rollback;

Rollback complete.

 

SQL>delete from a nologging;

10000 rows deleted.


Execution Plan
----------------------------------------------------------
   0      DELETE STATEMENT ptimizer=ALL_ROWS (Cost=1 Card=1 Bytes=3)
   1    0   DELETE OF 'A'
   2    1     INDEX (FULL SCAN) OF 'SYS_C005064' (INDEX (UNIQUE)) (Cos
          t=1 Card=1 Bytes=3)

 

 

Statistics
----------------------------------------------------------
          1  recursive calls
      10437  db block gets
         19  consistent gets
          0  physical reads
   2534564  redo size
        642  bytes sent via SQL*Net to client
        532  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      10000  rows processed


结论:在非force logging情况下,delete、update的命令使用nologging效果不大,insert的时候配合append效果明显

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-684562/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13177610/viewspace-684562/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值