mysql nologging_Insert 语句对 nologging 与 logging表 在不同场景下的优化

本文通过实验对比分析了在ARCHIVE和NOARCHIVE模式下,使用INSERT、INSERT APPEND和INSERT APPEND PARALLEL对logging和nologging表的性能影响,结果显示在NOARCHIVE模式下,append插入对logging表的性能提升显著,而并行操作进一步增强了这种优化效果。
摘要由CSDN通过智能技术生成

前言

前段时间报表数据库上有条insert sql语句,插入的大量数据,执行非常慢,需要对其进行分析优化。

分析步骤是在:ARCHIVE与NOARCHIVE模式下进行。

测试场景: 分别对表的常规插入,表在append插入,表在append + parallel插入进行性能测试,得出结果。

环境准备

数据库版本

基础表

nologging表

logging表

Oracle 11g

T1

T2

T3

#创建T1,T2,T3表

create table t1 as select * from dba_objects;

create table t2 as select * from dba_objects where 1=2;

create table t3 as select * from dba_objects where 1=2;

#往T1表插入数据

SQL> insert into t1 select * from t1;

72813 rows created.

SQL> /

145626 rows created.

SQL> /

291252 rows created.

SQL> select count(*) from t1;

COUNT(*)

----------

582504

#设置T2表为nologging属性

SQL> alter table t2 nologging;

Table altered.

数据库处于ARCHIVE时

常规插入

nologging 表T2

SQL> insert into t2 select * from t1;

commit;

582824 rows created.

Execution Plan

----------------------------------------------------------

Plan hash value: 3617692013

---------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

---------------------------------------------------------------------------------

| 0 | INSERT STATEMENT | | 582K| 53M| 1455 (2)| 00:00:18 |

| 1 | LOAD TABLE CONVENTIONAL | T2 | | | | |

| 2 | TABLE ACCESS FULL | T1 | 582K| 53M| 1455 (2)| 00:00:18 |

---------------------------------------------------------------------------------

Statistics

----------------------------------------------------------

3345 recursive calls

46879 db block gets

27878 consistent gets

8269 physical reads

67752144 redo size

838 bytes sent via SQL*Net to client

784 bytes received via SQL*Net from client

3 SQL*Net roundtrips to/from client

3 sorts (memory)

0 sorts (disk)

582824 rows processed

SQL>

Commit complete.

耗费:67752144 redo size

logging 表T3

SQL> insert into t3 select * from t1;

commit;

582824 rows created.

Execution Plan

-------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值