现在有数十万张表要从A库通过insert into tablename select * from tablename@dblink的方式导入到B库中。

B机上80个cpu,160G内存。希望能够大量并发执行。怎么写脚本呢?

谁有这方面的经验,麻烦指点一下。谢谢。

下面是我的脚本:

#!/usr/bin/sh

#最大进程数

v_max_session="310"

#进程计数器,用来计算当前正在执行的进程数量

v_session_counter=0

v_pipe_name=""

v_log_name=""

v_table_owner=""

v_table_name=""

v_part_name=""

v_param_file="list_table.txt"

f_insert_data()

{

sqlplus -s ${v_dest_tns} << EOF

set timing on time on autocommit on

prompt truncate table ...

declare

v_sql varchar2(300);

begin

begin

v_sql :='truncate table ${v_table_owner}.${v_table_name} reuse storage';

execute immediate v_sql;

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'truncate successfull',v_sql);

commit;

exception when others then

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'fail successfull',v_sql);

commit;

end;

begin

v_sql :='insert /*+ append */ into ${v_table_owner}.${v_table_name} nologging select * from  ${v_table_owner}.${v_table_name}@JLDM';

execute immediate v_sql;

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'insert successfull',v_sql);

exception when others then

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'insert fail',v_sql);

commit;

end;

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'truncate successfull',v_sql);

exception when others then

insert into trunlog values ('${v_table_owner}','${v_table_name}','',sysdate,'fail','');

commit;

end;

/

exit;

EOF

}

while read v_table_owner v_table_name v_part_name

do

while [  $v_session_counter -ge $v_max_session ]

do

echo ". \c"

sleep 1

v_session_counter=0

ps -ef | grep -v grep | grep sqlplus | wc -l | read v_session_counter

done

f_insert_data

v_session_counter=0

ps -ef | grep -v grep | grep imp | wc -l | read v_session_counter

echo "session counter: ${v_session_counter}"

done

list_table.txt里面的内容如下:

JLCRM DW_NEWBUSI_SVC_MM_439 DW_NEWBUSI_SVC_MM200508

PARAM DIM_STAT_SP_TMP NULL

JLCRM DW_IMEI_USER_MM_431 DW_IMEI_USER_MM200509

DM DM_SMS_BASE_437_20090816 NULL

JLCRM DW_IMEI_USER_MM_432 DW_IMEI_USER_MM200509

DM DM_OWE_BASE_439_20090816 NULL

JLCRM DW_IMEI_USER_MM_433 DW_IMEI_USER_MM200509

DM DM_SMS_BASE_438_20090816 NULL

JLCRM DW_IMEI_USER_MM_434 DW_IMEI_USER_MM200509

第一列是用户名,第二列是表名,第三列是分区名。

我要实现的功能是,并发度300个。一起做insert into select 操作。

但我运行时发现,不能并发。每次只有一个insert操作。

麻烦有经验的朋友帮忙看看,改一下。谢谢。

oracle并发执行max,跪求大量并发执行insert into select语句的方案相关推荐

  1. Oracle 有long类型字段的表 使用insert into select 语句 ,出现:ORA-00997 错误

    表结构如下 字段 类型 col1 varchar2(64) col2 long --复制数据 insert into mytable(col1,col2) select col1||'_copy',c ...

  2. oracle中create table as和insert into select语句

    SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT INSERT INTO SELECT Create table newTable a ...

  3. oracle先执行哪个from,Oracle(二)SELECT语句执行顺序

    转载自:小强斋太-Study Notes,原文链接 从join on和where执行顺序认识T-SQL查询处理执行顺序 目录 一.样例 二.SELECT语句的处理过程 1. FROM阶段 2. WHE ...

  4. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别...

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  5. oracle select into 多个,Oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    在Oracle中select into from不可以使用,用create tableselect代替该功能!!!在Sql Server中可以正常使用.1.INSERT INTOSELECT语句 语句 ...

  6. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  7. insert oracle用法,insert into select的实际用法,insertselect

    insert into select的实际用法,insertselect INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,... ...

  8. oracle java 并发_【转】JAVA并发教程(ORACLE官网资料)

    本文是Oracle官方的Java并发相关的教程,感谢并发编程网的翻译和投递. 计算机的使用者一直以为他们的计算机可以同时做很多事情.他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他 ...

  9. oracle 锁表如何解决_Java高并发解决什么方式

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究 ...

最新文章

  1. c++ 取成员函数地址_c及c++指针及引用简单解释(自学学习心得)
  2. Java系列笔记(1) - Java 类加载与初始化
  3. 3.12 程序示例--多分类问题-机器学习笔记-斯坦福吴恩达教授
  4. 基于容器原理(docker、lxc、cells)的Android 双系统设计概要
  5. JavaWeb学习之路——SpringBoot搭建项目框架(一)
  6. php-fpm 配置文件位置,php
  7. python入门之装饰器
  8. JavaScript的浪漫,520一生一世!!
  9. 河南科技学院去年对口计算机分数线,河南科技学院录取分数线2021是多少分(附历年录取分数线)...
  10. .fit文件读取--head信息--修改head--读取csv文件-------ska暑期训练
  11. python切分数据集_Python数据集切分实例
  12. MATLAB信号处理---学习小案例(10)---Z反变换
  13. EDVR和FastDVD
  14. 已解决Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
  15. 脑在IDE模式下能正常启动,改成AHCI后蓝屏——解决方法
  16. swift导入oc第三方库
  17. python学习—几个简单小程
  18. DVWA 不跳转_利用url跳转漏洞冒充公安局官网的骚操作
  19. 计算机表格如何求和,excel怎么求和,教您excel如何进行求和
  20. 自监督论文阅读笔记DisCo: Remedy Self-supervised Learning on Lightweight Models with Distilled Contrastive

热门文章

  1. 手机厂商探路互联网:硬件高利润时代已成历史
  2. 360董事长周鸿祎跨足手机市场是福还是祸?
  3. 推荐 21 个顶级的 Vue UI 库
  4. Maven 依赖-镜像仓库替换为 -- 阿里云镜像仓库(飞快实现 pom 引入)
  5. 排序系列【比较排序系列之】直接插入排序
  6. display:flex
  7. 关于C/C++中的“auto”关键字
  8. Ubuntu下安装配置JDK
  9. Canvas Clock
  10. liunx常用命令笔记