insert 性能
来源:互联网 发布:java中变量的定义方法 编辑:程序博客网 时间:2024/05/01 11:49
1.
insert into tab1 select * from tab2;
commit;
这是最基础的insert语句,我们把tab2表中的数据insert到tab1表中。根据经验,千万级的数据可在1小时内完成。但是该方法产生的arch会非常快,需要关注归档的产生量,及时启动备份软件,避免arch目录撑爆。
2.
insert /*+ append */ into tab1nologging select * from tab2;
commit;
该方法会使得产生arch大大减少,并且在一定程度上提高时间,根据经验,千万级的数据可在45分钟内完成。但是请注意,该方法适合单进程的串
行方式,如果当有多个进程同时运行时,后发起的进程会有enqueue的等待。
3.
insert into tab1 select /*+ parallel */ * from tab2;
commit;
对于select之后的语句是全表扫描的情况,我们可以加parallel的hint来提高其并发,这里需要注意的是最大并发度受到初始化参数parallel_max_servers的限制,并发的进程可以通过v$px_session查看,或者ps -ef |grep ora_p查看。
4.
alter session enable parallel dml;
insert /*+ parallel */ into tab1 select * from tab2;
commit;
与方法2相反,并发的insert。
5.
insert into tab1 select * from tab2 partition (p1);
insert into tab1 select * from tab2 partition (p2);
insert into tab1 select * from tab2 partition (p3);
insert into tab1 select * from tab2 partition (p4);
对于分区表可以利用tab1进行多个进程的并发insert,分区越多,可以启动的进程越多。。
6.
DECLARE
TYPE dtarray IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
v_col1 dtarray;
v_col2 dtarray;
v_col3 dtarray;
BEGIN
SELECT col1, col2, col3 BULK COLLECT
INTO v_col1, v_col2, v_col3
FROM tab2;
FORALL i IN 1 .. v_col1.COUNT
insert into tab1 WHERE tab1.col1 = v_col1;
END;
用批量绑定(bulk binding)的方式。当循环执行一个绑定变量的sql语句时候,在PL/SQL 和SQL引擎(engines)中,会发生大量的上下文切换(context switches)。使用bulk binding,能将数据批量的从plsql引擎传到sql引擎,从而减少上下文切换过程,提升效率。该方法比较适合于在线处理,不必停机。
7.
sqlplus -s user/pwd< runlog.txt
set copycommit 2;
set arraysize 5000;
copy from user/pwd@sid -
to user/pwd@sid -
insert tab1 using select * from tab2;
exit
EOF
用copy的方法进行插入,注意此处insert没有into关键字。该方法的好处是可以设置copycommit和arrarysize来一起控制commit的频率,上面的方法是每10000行commit一次
- insert 性能
- ORACLE insert 性能比较
- 优化MySQL insert性能
- MySQL insert性能优化
- mysql 优化 insert 性能
- Mysql insert 性能优化
- MySQL insert性能优化
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- InnoDB insert性能拐点测试
- 如何优化MySQL insert性能
- 如何优化MySQL insert性能
- Mysql 批量insert性能测试
- 查看错误信息
- strcpy, memcpy实现...
- 查看内置函数和自定义函数的效率
- FreeBSD查看硬件信息
- ajax运用
- insert 性能
- 升蓝DEMO
- JQuery ajax请求的2种用法
- ASC码
- 数据库优化
- jquery运用b
- MT6253平台启动流程
- 用jquery使用ajax例子
- HTML学习(6)使用样式