oracle插入性能优化,Oracle- insert性能优化

看见朋友导入数据,花了很长时间都没完成!其实有很多快速的方法,整理下!

4a89480f9fb505d3bba7717a566df3dc.png

向表中插入数据有很多办法,但是方法不同,性能差别很大.

----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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

winscp 自动断开无法连接_winscp教程,winscp教程,看完就学会的winscp教程

作为一个站长,当你的网站流量逐渐变大时,就会发现目前的主机无法满足正常需要,就要更换更高一级的云主机或VPS主机,新手就需要使用WinSCP和Putty,来管理主机。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作…

oracle客户端数据恢复,AnyBackup-Oracle 数据恢复任务恢复到异客户端失败,并提示错误:数据源为空,请检查恢复环境是否授权...

关键字Oracle、数据源适用产品AnyBackup Express 7.0.6 - 7.0.8AnyBackup CDM 7.0.6 - 7.0.8问题描述登录 AnyBackup 管理控制台,依次点击定时数据保护 > 数据恢复 > 新建,新建 Oracle 数据恢复任务,选择恢复数据到异客户端&#xff0c…

python创建excel_python自动生成excel(xlwt库)

# coding: utf-8import web import json import datetime import xlwt import StringIO # 如果不在前端调用接口,如下web.py框架的urls和app、render可以省略 urls( # web框架的路由/index,Index,/home,Home, ) appweb.aplication(urls, globals()) # 注册应用 rend…

linux限制单个用户使用,linux下限制用户使用系统资源

linux下限制用户使用系统资源除了可以对用户设置磁盘配额以及权限做限制以外还可以使用ulimit可以对所有用户的core文件大小,数据段大小,最多可使用的CPU事件和最多可打开的文件数目等做限制,将ulimit命令放在/etc/profile文件中,…

linux祖先进程,Linux下的几种特殊进程

1、Linux的登录环境Linux是一个多任务多用户的操作系统,其设计初衷: 就是要达成多用户同时使用单个计算机大的任务。多用户:早期计算机资源紧张,为了让更多的人都可以使用。多任务:服务于多用户,同时提高计算机的吞吐量…

@select注解_SSM框架(十三):Spring框架中的IoC(3)新注解,完全摆脱xml文件

spring中的新注解1、Configuration作用:指定当前类是一个配置类细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。2、ComponentScan作用:用于通过注解指定spring在创建容器时要扫描的包属性…

linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行

这里的目的是将文件中的第一行复制到最后一行这里是输入文件335418.75,2392631.25,36091,38466,1335418.75,2392643.75,36092,38466,1335418.75,2392656.25,36093,38466,1335418.75,2392668.75,36094,38466,1335418.75,2392681.25,36095,38466,1335418.75,2392693.75,36096,384…

element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计

需求分析当我们去实现一个组件库的时候,并不会一上来就撸码,而是把它当做产品一样,思考一下我们的组件库的需求。那么对于 element-ui,除了基于 Vue.js 技术栈开发组件,它还有哪些方面的需求呢。丰富的 feature&#x…

LinuX编译显示内核配置无效,配置编译内核(Linux kernel)

虽然以前也编译过内核,但是关于内核配置选项特别是有关本机驱动这块还是不熟悉,因为没有通过确定有效的途径知道当前工作正常的内核中到底使用了什么驱动模块来控制硬件,最近看到一本书《Linux kernel in a netshell》,感觉讲的还…

arraylist线程安全吗_Java的线程安全、单例模式、JVM内存结构等知识梳理

java技术总结知其然,不知其所以然 !在技术的海洋里,遨游!做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!本篇以一些问题开头,请先不看答案,自己思…

linux 7查内核,查看CentOS7内核版本及发行版本

原文:https://blog..net/networken/article/details/79771212s1.查看内核版本[rootlocalhost ~]# uname -srLinux 4.15.11-1.el7.elrepo.x86_64[rootlocalhost ~]# uname -aLinux localhost.localdomain 4.15.11-1.el7.elrepo.x86_64 #1 SMP Mon Mar 19 11:46:06 ED…

python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python

此问题与任何代码都不完全相同。我认为我的安装(python 3.3.5)以某种方式损坏。我尝试了卸载和重新安装以及修复,但是没有任何效果。自从我上次运行任何python代码或进行涉及python的操作以来已经有一段时间了,所以我不能说我不小…

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目,这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具,旨在为用户提供一…

python的界面文字翻译_一个把网站全英文转成中文的方法,让你轻松看懂python官网...

近日,在看python官网(英文网站)时,使用了有道翻译工具查看了几个专有名词。无意间,有了是不是可以输入网站地址进行翻译的想法,翻译后的网站地址点击进去后,又是一个什么情况呢?小编…

linux配置redis服务,记一次linux下安装redis, 设置redis服务, 及添加环境变量

一. redis的安装cd /opt # 切换至opt目录下wget http://download.redis.io/releases/redis-3.2.9.tar.gz # 指定版本下载redistar xzf redis-3.2.9.tar.gz …

drools规则引擎技术指南_物联网规则引擎技术

物联网应用程序设计与典型的IT解决方案大不相同,因为它将物理操作技术(OT)与传感器、致动器和通信设备连接起来,并将数字信息技术(IT)与数据、分析和工作流连接起来。在企业环境中,物联网非常复…

linux中在工作空间编译cpp,linux tensorflow2.4.0 c++ 编译

1. bazel 版本要对应tensorflow的要求2.tensorflow 源码3.eigen4.protobuf 版本要对应tensorflow的要求(workspace.bzl 提到了这个要求)源码编译参考:https://blog.csdn.net/luo841297935/article/details/104417495其他1.CMakeLists.txtcmake_minimum_required (VERSION 2.8.8…

linux 2G内存够用吗,不管2G还是6G运存,为什么使用手机时都会先占用一半?

原标题:不管2G还是6G运存,为什么使用手机时都会先占用一半?以前安卓手机最大的缺陷就是运存问题,手机玩着玩着突然就运行内存不足了,为了运行更流畅手机运存从1G到2G…到8G,手机运存越来越大。但大家有没有…

python取列表前几个元素_Python下几种从一个序列中取出元素的方法

使用Python进行数据处理时,有时候会有这样的操作,比如从一个列表或者numpy array中随机取出一个元素,对一个列表中的元素进行shuffle,等等。虽然这些操作也可以通过编写很简短的程序完成,但我们使用Python有一点很重要…

c++ 写x64汇编 5参数_怀念9年前用纯C和汇编写的入侵检测软件

在翻出12年前用C#写的自我管理软件之后,进一步激发了本猫的怀旧情怀。上一篇在此:竟然无意间翻出12年前自己用C#写的程序这不,昨天竟然又找出2010年写的一款Windows系统入侵检测及防御小工具,当时命名是:NtInfoGuy!对于Windows的内部&#xf…