plsql怎么批量添加数据_如何在PLSQL程序中处理批量数据

本文介绍了在PLSQL中处理批量数据的优化方法,包括Oracle的批量处理特性、使用临时表、并行处理和SQL优化。特别强调了`BULK COLLECT`的使用,以提高处理大量数据的效率。
摘要由CSDN通过智能技术生成

如何在

plsql

程序处理批量数据

.

Author:

Wenxing.zhong

Date:

2008-05-29

ebao

的应用程序中,有很多的业务需要通过

pl/sql

程序来处理,每天晚上可能

要运行多个

job

来处理当天,当周或者当月的数据;这些后台批处理

pl/sql

程序在

业务数据量比较少的场合基本能够在一个晚上的时间内跑完,但是随着客户业务数

据量的不断增长,部分

pl/sql

程序的执行时间不断的增长,以至于一个晚上跑不完

影响业务系统白天的正常运行,引起客户不断的抱怨,给项目组带来比较大的压

力;笔者在

income

taiping

项目的优化中,经历了其中的许多案例,现把优化过

程中的一些体会写下来,供各个项目组参考;

在和开发人员的交流中,开发人员不断向我抱怨,数据量太多了,我们没有办法提

高程序的处理速度,我们必须一条一条数据来进行处理,因为里面有很多的业务逻

辑处理,真的没有办法吗,不,有,只是我们没有发现,下面我罗列出一些针对批

量处理的方法,希望能够抛砖引玉,给各个开发人员开阔一些思路;

批量数据处理的一些方法:

1

,使用

oracle

批量处理的特性,如

forall,bulk

collect

2

,使用临时表来储存常用的一些数据,避免对大表的多次访问;

3

,使用多个

job

来并行处理;

4

,优化

sql,

提高

sql

的执行效率;

一:使用

oracle

批量处理特性:

(1)

bulk

collect

的使用:

ebao

的程序中经常会有这样的程序:

先声明一个游标

CURSOR

c_policy_fee

IS

SELECT

*

FROM

t_policy_fee

where

xxxxx=xxxx;

然后

For

cur_rec

in

c_policy_fee

loop

业务处理

End

loop;

在游标获取的数据量较大的场合考虑用如下的方法:

TYPE

id_type

IS

TABLE

OF

t_policy_fee.id%TYPE;

TYPE

description_type

IS

TABLE

OF

t_policy_fee.description%TYPE;

t_id

id_type;

t_description

description_type;

BEGIN

SELECT

id,

description

BULK

COLLECT

INTO

t_id,

t_description

FROM

t_policy_fee;

For

I

in

id.first

..id.last

loop

业务处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值