oracle 模式_Oracle实验--insert /*+APPEND*/与insert不同模式下产生redo大小
概述
在非归档模式下,INSERT语句采用HINT /*+ APPEND*/的方式确实比普通INSERT语句产生的redo要少很多。而归档模式呢?表是不是也有区别?下面做个实验来测试下~
insert /*+ append */注意事项:
a、非归档模式下,只需append就能大量减少redo的产生;归档模式下,只有append+nologging才能大量减少redo。
b、insert /*+ append */ 时会对表加锁(排它锁),会阻塞表上的除了select以外所有DML语句;传统的DML在TM enqueue上使用模式3(row exclusive),其允许其他DML在相同的模式上获得TM enqueue。但是直接路径加载在TM enqueue使用模式6(exclusive),这使其他DML在直接路径加载期间将被阻塞。
c、insert /*+ append */ 直接路径加载,速度比常规加载方式快。因为是从HWM的位置开始插入,也许会造成空间浪费。
1.环境介绍
数据库版本:
SQL> select * from v$version;
这里选了其中一台测试数据库服务器来演示。
网上说测试时不要使用auto trace来查看redo size,这个值是有偏差的.建议建立一个视图:
SQL> create or replace view redo_size asselect valuefrom v$mystat, v$statnamewhere v$mystat.statistic# = v$statname.statistic#and v$statname.name = 'redo size';
实例演示:
1 非归档模式
SQL> archive log list;
1.1 nologging表
SQL> create table test1 nologging as select * from dba_objects where 1=0;SQL> select * from redo_size;SQL> insert into test1 select * from dba_objects; SQL> select * from redo_size;SQL> insert /*+ APPEND */ into test1 select * from dba_objects;SQL> select * from redo_size;SQL> select (10416364-10393068) redo_append ,(10393068-65740) redo_normal from dual;
1.2 logging表:
SQL> create table test2 as select * from dba_objects where 1=0;SQL> select * from redo_size;SQL> insert into test2 select * from dba_objects;SQL> select * from redo_size;SQL> insert /*+ APPEND */ into test2 select * from dba_objects;SQL> select * from redo_size;SQL> select (20807336-20782980) redo_append , (20782980-10455852) redo_normal from dual;
2 归档模式下:
SQL> shutdown immediateSQL> startup mountSQL> alter database archivelog;SQL> alter database open;SQL> archive log list
2.1 nologging表
SQL> select * from redo_size;SQL> insert into test1 select * from dba_objects;SQL> select * from redo_size;SQL> insert /*+ APPEND */ into test1 select * from dba_objects;SQL> select * from redo_size;SQL> select (10343044-10318716) redo_append , (10318716-21484) redo_normal from dual;
2.2 logging表
SQL> select * from redo_size;SQL> insert into test2 select * from dba_objects;SQL> select * from redo_size;SQL> insert /*+ APPEND */ into test2 select * from dba_objects;SQL> select * from redo_size;SQL> select (31025676-20639888) redo_append , (20639888-10343044) redo_normal from dual;
在归档模式下,对于常规表的insert append产生和insert同样的redo。
此时的insert append实际上并不会有性能提高,但是此时的append是生效了的。
非归档模式下,无论是nologging表还是logging表,表的insert append产生的redo远远小于insert同样的redo。
归档模式下,对于nologging表,表的insert append产生的redo远远小于insert同样的redo。而对于logging表的insert append产生和insert同样的redo。
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
oracle 模式_Oracle实验--insert /*+APPEND*/与insert不同模式下产生redo大小相关推荐
- 【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较...
[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 [知识点整理]Oracle中NOLOGGING.APPEND.AR ...
- 【知识点整理】NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较...
[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 ...
- 磁盘阵列掉电 oracle数据库,掉电导致磁盘坏,非归档下的redo全部丢失,数据库打开的恢复失败...
1.环境 OS:sun solaris Database version:8.1.7 数据文件存放路径:/u01/oradata/bjtb/; /u02/oradata/bjtb/ 数据库为非归档 2 ...
- oracle数据库 append,oracle中insert,copy,insert append执行对比
oracle中insert,copy,insert append执行对比 还是由于迁移数据库,测试了insert,copy,insert append的执行速度. 环境:oracle9i向oracle ...
- oracle中并行与append,如何让insert /*+ append */ 采用并行。
SQL> explain plan for insert /*+ append parallel(my 2) */ into my select * from ac01; 已解释. 已用时间: ...
- insert /*+ APPEND */
总结得出以下3点结论: a.非归档模式下,只需append就能大量减少redo的产生:归档模式下,只有append+nologging才能大量减少redo. b.insert /*+ append * ...
- oracle数据库中insert,【Oracle】sql插入之 insert all、insert first
Oracle插入之 insert all.insert first介绍 利用insert first/all使得INSERT语句可以同时插入多张表,还可以根据判断条件来决定每条记录插入到哪张或哪几张表 ...
- 【python列表插入函数】append() extend() insert() 三者区别与使用方法
三个列表插入函数 append() extend() insert() append() append()函数是在列表末尾添加元素 append()括号内可以是数字.字符串- a=[1,2] a.ap ...
- oracle触发器中的after insert后继续触发,oracle触发器使用:after insert 与before insert的简单使用注意...
创建触发器时,触发器类型为after insert , 在begin中 Select fieldA into v_a from tableA; 执行到此句时,会出错: --弹出错误信息提示 --ORA ...
- markdown tips :发布和保存的区别+避免打字键入文字后替换删除后面的字(更改打字时的光标模式:竖线或黑块)insert键+键盘文字选中方法+csdn 上传图片不加水印
csdn 上传图片不加水印 将问号后的内容删掉 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1a74f0e30afb46d699541009e0811df4.pn ...
最新文章
- [YY题]HDOJ5288 OO’s Sequence
- java书籍_这本最适合夯实基础的Java 书籍,80% 的 Java 程序员没认真看过
- Android-可自动缩小字体的TextView
- 我的机器学习入门之路(上)——传统机器学习
- 企业形象广告的几个突破要点
- rocksdb原理_[转]Rocksdb Compaction原理
- MySQL-MySQL数据类型及占用字节数
- python中表示空类型的是_python中什么表示空类型
- Unity 工具 之 常用插件分类汇总(UI/VR/AR/建模/Shader/动画/网络/AI/资源/数据/区块链等)
- 如何使用EDI系统解决对接多工厂的问题?
- excel vba移位运算
- 酷派android4.4.4到5.0,酷派大神F1电信版升级安卓5.0刷机教程[多图]
- DSP开发,使用CCS软件建立工程以及烧录
- 计算机系统基础第二版_2020年注册环保工程师公共基础考试题库
- Eclipse安装漂亮的Darkest Dark Theme主题步骤(超详细)
- 【NOI Online】 2021普及
- centos mysql 绿色版安装_centos7环境下mysql5.7的安装与配置(免安装版)
- 人工智能培训机构哪个好?求求你们别再去培训机构学假的人工智能了!
- 用什么办法可以解决失眠?
- 身份证号码校验java
热门文章
- asp上传服务器后台图片显示,asp.net上传图片到服务器方法详解
- A guess 解题报告
- 【计算机视觉】【并行计算与CUDA开发】GPU硬编码
- 软件测试工作职责,软件测试经理岗位职责
- JVM初识之虚拟机内存结构
- Spring Cloud Data Flow 2.0.1 GA 发布
- 守卫数据中心命门的胡桃夹子-特权账号管理平台
- 【电力电子】功率因素\无功功率
- [译]Vue 2.0的变化(一)之基本API变化
- 一次idea上使用logback+slf4j乱码的解决,问题不在logback