Oracle——插入效率普通insert和insert /*+append*/
来源:互联网 发布:火星网络用语 编辑:程序博客网 时间:2024/04/30 07:11
在归档模式和非归档模式下,设定表为logging和nologging,测量普通的insert 和insert /*+append*/生成redo大小。第一次测试我对下列结果报怀疑态度,于是又重新测试一遍,结果差不多,想想是测试的数量太少。如果是在正式环境上做数据迁移,最好就选择最后一种模式。
模式普通insert下redo生成量(Byte)insert/*+append*/下redo生成量(Byte)非归档模式(表logging)570632488340非归档模式(表nologging)568586463348归档模式(表logging)568619663424归档模式(表nologging)568536463348
1. 非归档模式
SQL> create view m_redo as 2 select value 3 from v$sysstat, v$statname 4 where v$sysstat.statistic# =v$statname.statistic# 5 and v$statname.name ='redo size';SQL> create table test as select * from dba_objects where 1=0;
1.1表为logging
SQL> select * from m_redo; VALUE---------- 9236752SQL> insert into test select * from dba_objects;
已创建50325行。
SQL> commit; SQL> select * from m_redo; VALUE---------- 14943076SQL> select (14943076-9236752)/1024/1024||'M' from dual;(14943076-9236752)/10---------------------5.441974639892578125MSQL> truncate table test;SQL> select * from m_redo; VALUE---------- 15048424SQL> insert /*+append*/ into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 15136764SQL> select (15136764-15048424)/1024/1024||'M' from dual;(15136764-15048424)/--------------------.084247589111328125M
1.2表为nologging
SQL> truncate table test;SQL> alter table test nologging;SQL> select * from m_redo; VALUE---------- 15190864SQL> insert into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 20876728SQL> select (20876728-15190864)/1024/1024||'M' from dual;(20876728-15190864)/--------------------5.42246246337890625MSQL> truncate table test;SQL> select * from m_redo; VALUE---------- 20937256SQL> insert /*+append*/ into test select * from dba_objects;已创建50325行。SQL> commit;SQL> select * from m_redo; VALUE---------- 21000604SQL> select (21000604-20937256)/1024/1024||'M' from dual;(21000604-20937256)/--------------------.060413360595703125M
2. 归档模式
在重新开一个session
SQL> conn test/test
已连接。
SQL>shutdown immediateSQL>startup mountSQL>alter database archivelogSQL> alter database open;
数据库已更改。
1.1 表为logging
SQL> truncate table test;
表被截断。
SQL> select * from m_redo; VALUE---------- 130848SQL> insert into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 5817044SQL> select (5817044-130848)/1024/1024||'M' from dual;(5817044-130848)/1024---------------------5.422779083251953125MSQL> truncate table test;SQL> select * from m_redo; VALUE---------- 5879644SQL> insert /*+append*/ into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 5943068SQL> select (5943068-5879644)/1024/1024||'M' from dual;(5943068-5879644----------------.06048583984375M
1.2 表为nologging
SQL> truncate table test;SQL> alter table test nologging;
表已更改。
SQL> select * from m_redo; VALUE---------- 5990988SQL> insert into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 11676352SQL> select (11676352-5990988)/1024/1024||'M' from dual;(11676352-5990988)/10---------------------5.421985626220703125MSQL> truncate table test;。SQL> select * from m_redo; VALUE---------- 11736328SQL> insert /*+append*/ into test select * from dba_objects;
已创建50325行。
SQL> commit;SQL> select * from m_redo; VALUE---------- 11799676SQL> select (11799676-11736328)/1024/1024||'M' from dual;(11799676-11736328)/--------------------.060413360595703125M
0 0
- Oracle——插入效率普通insert和insert /*+append*/
- ORacle——insert /*+append*/提高性能
- insert /*+append*/和各种insert插入速度比较
- Oracle insert /*+ APPEND */原理解析
- insert /*+append */
- insert /*+ APPEND */
- insert /*+ APPEND */
- insert /*+append*/
- Python 列表 insert 和 append
- 关于insert /*+ append*/ 各种insert插入速度比较
- insert /*+append*/ into (直接插入)logging失效
- Oracle 插入insert语句
- Oracle插入之 insert all、insert first
- oracle insert 使用append提示跳过缓存
- oracle中普通insert和直接装载的性能差别
- StringBuffer的insert()方法和append()方法
- StringBuffer的insert()方法和append()方法
- Insert SQL Query插入效率优化
- Android中的数据存储
- 全面解析Unity3D自动生成的脚本工程文件
- iOS 圆环进度指示器 XLCircleProgress
- Excel VBA:单元格错误值
- 深入理解 Java G1 垃圾收集器
- Oracle——插入效率普通insert和insert /*+append*/
- quartz定时器时间格式
- 苹果地图使用之定位
- 基本法
- (初学)Java 快速排序
- shader基础之练习题
- 动态规划入门
- 线程池的简单封装和使用
- 整理Cocos2d-x 面试题解