oracle插入性能优化,Oracle- insert性能优化
看见朋友导入数据,花了很长时间都没完成!其实有很多快速的方法,整理下!
向表中插入数据有很多办法,但是方法不同,性能差别很大.
----1.原始语句
drop table t1 purge;
create table t1
(
sid number,
sname varchar2(20)
) tablespace test;
create or replace procedure proc01
(
sname varchar2
)
as
begin
for i in 1..10000000
loop
execute immediate
'insert into t1(sid,sname) values('||i||','''||sname||''')';
commit;
end loop;
end;
/
alter system flush shared_pool;
set timing on;
exec proc01('ocpyangtest');
已用时间: 02: 02: 54.12
----2.绑定变量
drop table t1 purge;
create table t1
(
sid number,
sname varchar2(20)
) tablespace test;
create or replace procedure proc02
(
sname varchar2
)
as
begin
for i in 1..10000000
loop
execute immediate
'insert into t1(sid,sname) values(:no'||','''||sname||''')' using i;
commit;
end loop;
end;
/
alter system flush shared_pool;
set timing on;
exec proc02('ocpyangtest');
已用时间: 00: 22: 59.79
select count(*) from t1;
----3.静态语句
drop table t1 purge;
create table t1
(
sid number,
sname varchar2(20)
) tablespace test;
create or replace procedure proc03
as
begin
for i in 1..10000000
loop
insert into t1 values(i,'ocpyangtest');
commit;
end loop;
end;
/
alter system flush shared_pool;
set timing on;
exec proc03;
已用时间: 00: 20: 42.42
select count(*) from t1;
----4.批量提交
drop table t1 purge;
create table t1
(
sid number,
sname varchar2(20)
) tablespace test;
create or replace procedure proc04
as
begin
for i in 1..10000000
loop
insert into t1 values(i,'ocpyangtest');
end loop;
commit;
end;
/
alter system flush shared_pool;
set timing on;
exec proc04;
已用时间: 00: 11: 48.42
----5.集合
drop table t2 purge;
create table t2
(
sid number,
sname varchar2(20)
) tablespace test;
alter system flush shared_pool;
select count(*) from t1;
set timing on;
insert into t2 select sid,sname from t1;
已用时间: 00: 01: 02.18
commit;
select count(*) from t2;
----6. 集合+append
drop table t2 purge;
create table t2
(
sid number,
sname varchar2(20)
) tablespace test;
alter system flush shared_pool;
select count(*) from t1;
set timing on;
insert /* + append */ into t2 select sid,sname from t1;
已用时间: 00: 00: 36.94
commit;
select count(*) from t2;
----7. 集合+append+nologging
drop table t2 purge;
create table t2
(
sid number,
sname varchar2(20)
) nologging tablespace test;
alter system flush shared_pool;
select count(*) from t1;
set timing on;
insert /* + append */ into t2 select sid ,sname from t1;
已用时间: 00: 00: 35.07
commit;
select count(*) from t2;
----8.数据加载1
drop table t2 purge;
alter system flush shared_pool;
select count(*) from t1;
set
oracle插入性能优化,Oracle- insert性能优化相关推荐
- oracle 插入一个语句,oracle如何通过1条语句插入多个值 oracle通过1条语句插入多个值方法...
本篇文章小编给大家分享一下oracle通过1条语句插入多个值方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 在实践过程中遇到一个问题, 我想往数据库插入多条数据时,使用 ...
- oracle语句优化pl sql语句,求oracle插入初始数据pl/sql语句优化,该怎么处理(2)
SQL codeCREATE OR REPLACE PROCEDURE thi_pro AS randomnum NUMBER; randomnum2 NUMBER; randomnum3 NUMBE ...
- mysql insert 性能_MySQL 提高Insert性能
插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1x记录大小) 插入索引:(1x索引) 关闭:(1) 这不考虑打开 ...
- oracle插入日期异常,Oracle插入日期数据常见的2个问题和解决方法
1.无效的月份问题 最近在往数据库中插入时间时,Oracle报"无效的月份问题",具体SQL如下:INSERT INTO TS_COUNT ( ID,CNAME, STARTTIM ...
- oracle插入数据方式,Oracle批量插入数据的三种方式
第一种: begin insert into tableName(column1, column2, column3...) values(value1,value2,value3...); inse ...
- oracle中插入日期型数据,ORACLE插入日期数据
ORACLE插入日期数据 oracle数据库插入日期型数据 往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ...
- oracle的日期插入,ORACLE插入日期数据
ORACLE插入日期数据 oracle数据库插入日期型数据 往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ...
- Oracle 插入数据
Oracle 插入数据 顾名思义,INSERT用于向数据库插入(添加行). 可以以多种方式使用插入操作: 插入单个完整的行; 插入单个部分行: 插入多行: 插入查询的结果. 提示:insert 和系统 ...
- oracle proc编程 fetch,Oracle Proc编程性能优化经验
Proc 是Oracle提供的一种数据库操做的AP.它是基于ESql技术的,须要预编译后才能够变成普通c代码,很是不直观,使用起来不太方便,阅读也存在困难.程序员 由于这些问题致使程序员平时开发中会出 ...
- Oracle Freelist和HWM原理及性能优化
近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论.本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原 ...
最新文章
- 在VS2010下使用 UNICODE 和 ANSI 的混合编程
- 操作系统(二十九)预防死锁
- 数据库升级后,准备使用原有数据文件启动数据库
- udp本地通信需要注意哪些方面_验房注意什么?验房都需要检查哪些方面?
- 开放源代码_您对开放源代码感兴趣了多少年?
- 怎么配置java ee_如何配置Java EE Eclipse+Tomcat开发环境
- 设计模式系列之「观察者模式」
- Error 2503 and 2502 when installing/uninstalling on Windows 10
- mysql var目录很快_mysql数据库实现亿级数据快速清理的方法
- 常用的linux命令-vim
- FlashFXP连接失败(连接已拒绝)及530 permission denied(连接已被客户端关闭)
- TMS320F28377D的外设应用笔记(1)——Epwm配置
- 厦大计算机 专硕 分数线,厦门大学2020年专硕复试分数线
- android 打开wifi并链接到制定ip,在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备与流程...
- python实现多EXCEL表格合并xls、xlsx格式
- JavaScript 中字符串截取 (+实现)
- 漫谈程序猿系列:怎么告别“混日子”
- 鸿蒙os开源连接,全场景无缝连接 鸿蒙OS开源邀请全球开发者共助生态发展
- ULINK的手动刷新固件
- 【笔记】继电器·非门
热门文章
- Python数据类型-元组类型
- 利用Inception-V3训练的权重微调,实现猫狗分类(基于keras)
- Ts_半分查找猜数字游戏(初始版),
- jpa原生query_Spring Data JPA原生SQL查询
- python 四足机器人运动学_撸了个四足机器人
- java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
- PID控制器开发笔记之三:抗积分饱和PID控制器的实现
- 如何在摆摊经济中脱颖而出
- 红帽Linux7怎么修改网卡名称,新安装的Centos 7系统怎么将网卡名称改为eth0?
- mysql 不需要@的变量_mysql参数变量