易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE批量更新四种方法比较

技术
/AlexLin 发表于2007-11-28, 17:39

现在我们有2张表 如下:
T1--大表 10000笔 T1_FK_ID
T2--小表 5000笔   T2_PK_ID
T1通过表中字段ID与T2的主键ID关联
模拟数据如下:
--T2

5000
笔数据
create table T2
as
select rownum id, a.*
 from all_objects a
 where 1=0;
-- Create/Recreate primary, unique and foreign key constraints
alter table T2
 add constraint T2_PK_ID primary key (ID);
insert /*+ APPEND */ into T2
select rownum id, a.*
      from all_objects a where rownum<=5000;
     
--T1

10000
笔数据
          
create table T1
as
select rownum sid, T2.*
 from T2
 where 1=0;
-- Create/Recreate primary, unique and foreign key constraints
alter table T1
 add constraint T1_FK_ID foreign key (ID)
 references t2 (ID);
insert /*+ APPEND */ into T1
select rownum sid, T2.*
      from T2;
insert /*+ APPEND */ into T1
select rownum sid, T2.*
      from T2;
--
更新
Subobject_Name
字段,之前为
null
update T2 set T2.Subobject_Name='StevenHuang'
我们希望能把
T1

Subobject_Name
字段也全部更新成
'StevenHuang'
,也就是说
T1

10000
笔数据都会得到更新
方法一

PL/SQL,

cursor
declare
 l_varID varchar2(20);
 l_varSubName varchar2(30);
 cursor mycur is select T2.Id,T2.Subobject_Name from T2;
begin
 open mycur; 
 loop
      fetch mycur into l_varID,l_varSubName;
      exit when mycur %notfound;
      update T1 set T1.Subobject_Name = l_varSubName where T1.ID = l_varID;
 end loop;
 close mycur;
end;
---
耗时
39.716s
显然这是最传统的方法,如果数据量巨大的话(
4000
万笔),还会报
”snapshot too old”
错误退出
方法二.

loop
循环,分批操作
declare
 i


相关文档:

命令行维护Oracle AWR

命令行维护Oracle AWR
 
 有时候由于种种原因,只能使用命令行来维护Oracle10g。当然我们依然可以使用statspack,但由于statspack功能不如AWR,而
且如果使用两种性能诊断工具也是一种浪费。因此手动维护AWR还是有必要的,下面列出一些常用的AWR命令,以备后查。
   
1、修改AWR的触发频率
......

Oracle用户管理

 一,Oracle数据库用户简介
 在Oracle数据库中任何对象都属于一个特定用户,或者说一个用户与同名的模式相关联。
 要连接到Oracle数据库需要一个用户帐户,根据需要授予的操作权限。
 1,默认数据库用户模式:
  Sys:数据库字典(存储被管理对象所有信息)和视图存储在该模式中。系统级用户。 ......

Oracle Cursor

 1,什么是游标?
 ①从表中检索出结果集,从中每次指向一条记录进行交互的机制。
   
 ②关系数据库中的操作是在完整的行集合上执行的。
  由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。
   &n ......

oracle client连接

最近一段时间一直没写博客,不是懒,是学了太多东西。以后慢慢补上。 1. odbc中添加oracle数据源 odbc中添加oracle数据源首要条件:安装oracle client。安装完之后添加,但是还必须在安装目录下通常是C:\oracle\ora90\network\ADMIN\tnsnames.ora中添加一个连接,如下格式: DXS =
  (DESCRIPTION =
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号