【Oracle】append

我们在生产环境中经常遇到需要往表中插入大量数据的情况,怎么样才能让插入数据的速度变快呢?Oracle中的append简直就是神器!!没图说个**,直接上图:


是不是看晕了?哈哈,莫慌,请看下面总结:

1. 数据库为归档模式,必须同时有nologging和append才可以;

2. 数据库为非归档模式,只需要append就可以了。

为什么使用了append就能提高速度呢?这是因为append可以使数据库在高水位线之上直接插入数据,相对于普通插入,在做rollback的时候需要更少的操作(加了append后的insert,在做rollback时直接把高水位线降到原来位置),所以就可以产生更少的redo。

PS:提供一下实验可能会用的SQL

1. 查询数据库状态

(1)SELECT name,log_mode FROM v$database;

(2)ARCHIVE LOG LIST;

2. 修改数据库归档状态

步骤1:shutdowm immediate

步骤2:startup mount

步骤3:alter database archivelog; 或者 alter database noarchivelog;

步骤4:alter database open;

3. 查询redo和undo量

select name,value from (select b.name,a.value from v$mystat a,v$statname b where a.STATISTIC#=b.statistic#) where  name='redo size' or name like 'undo change%';


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值