oracle insert优化
来源:互联网 发布:淘宝怎么看自己宝贝排名 编辑:程序博客网 时间:2024/06/16 14:12
author:skate
time:2010/10/19
insert优化
要想提高insert的速度,首先要知道什么影响insert慢,在执行insert的过程中产生redo和undo,要想提高insert的速度,在充分利用系统资源的条件下就要尽量减少insert产生的redo和undo,undo的大小没办法改变,但是我们可以改变redo的量。下面是提高insert方法。
1. 增加hint /*+ append */ --不用在高水位下查找可insert的空间,直接在高水位之上insert
2. 增加hint /*+ parallel(tab,4) */
或者alter session enable/disable parallel dml; ---充分利用系统硬件资源
3. alter table tablename nologging/logging ----关闭表的log服务,减少redo产生
4. 如果业务允许的话,可以先删除索引,insert之后再重建. ---减少在insert时维护索引的开销
5. 可以增加临时中间表 ----减少此事务对undo的使用
6. 增大sort_area_size或PGA ----增加排序空间,避免磁盘操作
7. 优化sql语句本身
8. pl/sql批处理 ---化整为零,把大事务变成零散的小事务
说明:tb_order_detail_his :7000W记录
tb_order_detail :2000W记录
优化前:
INSERT INTO /*+ append */ tablename_his
SELECT * FROM tablename PARTITION (TB_ORDER_DE_WAREID40) WHERE ID NOT IN (
SELECT tcc.id FROM tablename PARTITION (TB_ORDER_DE_WAREID40) tcc , tablename_his tcch WHERE tcc.id=tcch.id
)
在做数据归档时,需要做大数据量的insert,对于insert内容少还是可以胜任的,可当要把200多万的数据归档,2个小时都没有成功,
于是对其优化改造,利用append,parallel,分批处理,nologging方法,使这个200W的数据归档在15分钟就完成
优化后:
通过 mod(tcc.id,10)把内容分10部分提交归档
INSERT INTO /*+ append */ tablename_his
SELECT * FROM tablename PARTITION (TB_ORDER_DE_WAREID40) tcc WHERE NOT EXISTS (
SELECT /*+ parallel(tcch,7) parallel(tcc,7) */ tcch.id FROM tablename_his tcch WHERE tcc.id=tcch.id
) AND mod(tcc.id,10)=9
-----end-----
- oracle insert优化
- insert优化
- INSERT 优化
- ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧
- insert语句优化
- mysql 大批量insert优化
- sqlite insert 优化
- 优化MySQL insert性能
- MySQL insert性能优化
- mysql 优化 insert 性能
- Mysql insert 性能优化
- MySQL insert性能优化
- ORACLE INSERT INTO
- ORACLE insert 性能比较
- oracle insert into select
- oracle insert 全解
- INSERT 语句 ORACLE / MSSQL
- oracle insert into Where
- 9个点画10条线
- uva 10785 The Mad Numerologist
- webgame开发之Flex调用FLash自定义界面
- Effective C++ 条款15学习笔记:在资源管理类型中提供对原始资源的访问
- Frame标签
- oracle insert优化
- c++ 字符串带双引号的表示方法
- Visual Studio 2008 配合 WxWidgets
- android 使用xml selector设置按钮点击效果图片
- SQL Server 2008 解决附加数据库为只读的问题
- xml转换步骤
- lua--string库函数
- 也谈 创新工厂面试题详解:共打了多少鱼
- IE中不能显示VML的解决办法