Oracle PL/SQL

本文详细介绍在Oracle数据库中如何通过使用/*+append*/指令在非归档模式下及nologging表上进行插入操作,以大幅降低redo size。文章通过具体SQL操作对比展示,在非归档模式下,使用append方式插入数据能够显著减少redo生成量,从而提升数据库性能。

1、查询当前归档模式

select name,log_mode from v$database;

2、查询当前redo size

select b.sid,a.name,a.value from v$sysstat a,v$mystat b where a.statistic#=b.statistic# and a.name like 'redo size%';

 3、在表为非归档模式下,且为nologging表,使用/*+ append*/进行insert操作可以减少大量的redo size。其中redo_size表为我们查询系统redo size表建立的视图

SQL> select * from redo_size;
 
    VALUE
    ----------
    8397184
 
SQL> insert into test_redos select * from dba_objects;
 
    71971 rows created.
 
SQL> select * from redo_size;
 
    VALUE
    ----------
    16801072
 
SQL> insert /*+ append */ into test_redos select * from dba_objects;
 
    71971 rows created.
 
SQL> select * from redo_size;
 
    VALUE
    ----------
    16836516
 
SQL> select (16801072-8397184)普通插入,(16836516-16801072) append插入 from dual;
 
    普通插入     APPEND插入
    ---------- ----------
    8403888      35444

总结:

非归档模式下:nologging表使用append能大量减少redo量。

归档模式下:在表空间和数据库级非force logging模式下,表如果是nologging,则append能大量减少redo量。

转载于:https://www.cnblogs.com/ZeroMZ/p/10793799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值