--版本信息
SELECT * FROM v$version;
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod
PL/SQL Release 10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for 32-bit Windows: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production --查看是否归档
select name,log_mode from v$database;
1 ORCL NOARCHIVELOG
或sqlplus:ARCHIVE LOG LIST; --创建查看产生redo大小的视图
create or replace view redo_size as
select value
from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic#
and v$statname.name = 'redo size';

1.在非归档模式下

--!!!!!!!!!!!非归档模式 产生的redo!!!!!!!!!!!!!!!!!!
--==============nologging表================
SELECT * FROM sys.redo_size;
--redo_size:0
create table test_nolog nologging as select * from dba_objects where 1=0;
--redo_size:17932
insert into test_nolog select * from dba_objects;
--redo_size:5772780
insert /*+ APPEND */ into test_nolog select * from dba_objects;
--redo_size:5782548
select (5782548-5772780) redo_append, (5772780-17932) redo_normal from dual;
9768 5754848
--================logging============================
--redo_size:11778596
create table test_log as select * from dba_objects where 1=0;
--redo_size:11799284
insert into test_log select * from dba_objects;
--redo_size:17555812
insert /*+ APPEND */ into test_log select * from dba_objects;
--redo_size:17565544
select (17565544-17555812) redo_append, (17555812-11799284) redo_normal from dual;
9732 5756528

结论:非归档模式下,只需append就能大量减少redo的产生,如果不加append,即使是nologing表也会产生一样多的redo;

2.在归档模式下

--修改为归档模式
set ORACLE_SID=ORCL
sqlplus / as sysdba SYS@ORCL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 544
当前日志序列 546
SYS@ORCL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG SYS@ORCL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SYS@ORCL> startup mount
ORACLE 例程已经启动。 Total System Global Area 1258291200 bytes
Fixed Size 1304848 bytes
Variable Size 201328368 bytes
Database Buffers 1048576000 bytes
Redo Buffers 7081984 bytes
数据库装载完毕。
SYS@ORCL> alter database ARCHIVELOG; 数据库已更改。
SYS@ORCL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 544
下一个存档日志序列 546
当前日志序列 546
SYS@ORCL> alter database open; 数据库已更改。
--!!!!!!!!!!!归档模式 产生的redo!!!!!!!!!!!!!!!!!!
--==============nologging表================
SELECT * FROM redo_size;
--redo_size:0
insert into test_nolog select * from dba_objects;
--redo_size:5729772
insert /*+ APPEND */ into test_nolog select * from dba_objects;
--redo_size:5739436
select (5739436-5729772) redo_append, (5729772-0) redo_normal from dual;
9664 5729772
--================loging============================
--redo_size:5729772
insert into test_log select * from dba_objects;
--redo_size:11355620
insert /*+ APPEND */ into test_log select * from dba_objects;
--redo_size:17123736
select (17123736-11355620) redo_append, (11355620-5729772) redo_normal from dual;
5768116 5625848

结论:归档模式下,append并且表为nologging 才能减少redo的产生,其余情况没效果;

对比append插入数据产生的redo量的更多相关文章

  1. Oracle快速插入数据append

    1:用merge into 进行匹配更新和插入,2: 开启并行,提高速度3: 如果可以的话加NOLOGING 不写入日志4:如果数据有规律的话,分批次执行 1.使用marge快速插入; MERGE / ...

  2. Oracle 插入数据效率对比

    oracle插入数据有多种方式: 将从多个表中查出来的数据插入到临时表中 数据行数 5189597 1.传统方式:直接将数据插入到表中 insert into LLB_BASIC_USER_D_TEM ...

  3. android批量插入数据效率对比

    对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 /** * 向表中插入数据 * * @param openHelper * @param app ...

  4. IT题库2-LinkList和ArrayList(插入数据、末尾插入数据、不同数据量插入数据)的效率?

    ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references).ArrayList是List接口的一个实现类,它的特点是查询效率高,增删效率低,线程不安全,原因 ...

  5. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  6. Entity Framework与ADO.NET批量插入数据性能测试

    Entity Framework是.NET平台下的一种简单易用的ORM框架,它既便于Domain Model和持久层的OO设计,也提高了代码的可维护性.但在使用中发现,有几类业务场景是EF不太擅长的, ...

  7. 批量插入数据(基于Mybatis的实现-Oracle)

    前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. -------------------------------- ...

  8. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...

  9. MySQL批量插入数据的几种方法

    最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; ...

随机推荐

  1. 嵌入式框架Zorb Framework搭建四:状态机的实现

    我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...

  2. xshell怎样打印

    Xshell提供用本地打印机打印终端窗口文本的功能.在Xshell打印时可以沿用终端窗口使用的字体及颜色.且在页面设置对话框可以设置打印纸的边距. 如何设置打印纸的大小和方向: 1.打开xshell ...

  3. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  4. Python的入坑之路(1)

    (故事背景:由于涉及到机密的原因,暂时不方便透露,待后期再写.) 国庆长假过完之后,回来上班第二天下午,Boss跟龙哥把我叫了出去,问我要不要转人工智能.一脸懵逼的我,带着一脸懵逼听Boss说人工智能 ...

  5. jmeter插件下载

    https://jmeter-plugins.org/wiki/Start/ 插件下载好后,将插件lib目录下的jar包放在jmeter安装目录下的lib里,插件ext目录下的jar包放在jmeter ...

  6. JS 客户端检测

    能力检测 能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力. 能力检测需要注意两点: 先检测达成目的的最常用的特性.因为先检测最常用的特性可以保证代码最优化,因为在多数情况下都可以避免测试多个 ...

  7. xadmin站点管理面样样式控制

    xadmin可以使用的页面样式控制基本与Django原生的admin一直. list_display 控制列表展示的字段 search_fields 控制可以通过搜索框搜索的字段名称,xadmin使用 ...

  8. CSP201409-1:相邻数对

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...

  9. 第16讲——C++中的代码重用

    C++的一个主要目标是促进代码重用.除了我们之前学的公有继承,我们在这一讲将介绍另一种代码重用的方法——类模板.

  10. PhpStorm 配置数据库

    点击软件右边的 Database