Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97603
  • 博文数量: 39
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-25 09:25
文章分类

全部博文(39)

文章存档

2011年(1)

2010年(5)

2009年(4)

2008年(29)

我的朋友
最近访客

分类: DB2/Informix

2008-10-06 17:23:53

  本来以及写好的一篇总结,结果在编辑的时候丢失了,有点郁闷,重新写一次吧, 权当排版 囧...。
   在维护数据的时候,免不了要对表进行大数据量的插入,更新操作。如果数据量特别大,比如上300,000条数据的更新的时候,只能在非业务时间进行。在金融行业,最常见的操作是对客户资料进行更新,而在数据维护工作中,对数据进行清理(比如由于程序原因而带入^M等字符)等操作也比较频繁。在这些操作,如果在业务时间进行,会涉及一个锁表的问题,严重影响客服业务。有什么方法可以避免锁表而且可以不用加班摸黑进行?
方案一:
1 建临时表      
 

create table tmp_a

2 加载要更新的数据

load from a.sql insert into tmp_a

3 建立索引

create index idx_a_1 on tmp_a(1)

4 设置脏读模式

set isolation to dirty read;

5 update 之

update a
set (a1,a2,...) = ((
select a1,a2,.... from tmp_a
where tmp_a.p = a.p
))
where exits( select * from a
where a.p = tmp_a.p
)

方案二:

使用excel 的函数功能 定义update的字符串 然后保存成upd.sql 执行之.

1.1 点excel的一个空白表格,在函数定义那里输入以下代码

="update cntr_basic_state set ipsn_grp ="&F1&" where cntr_id = "&I1&" and ipsn_no = "&H1&"" & ";"

1.2 下拉形成对应的update语句 保存成tmp.sql

1.3 执行之

>isql -s dtabase < tmp.sql

阅读(1145) | 评论(2) | 转发(0) |
0

上一篇:转帖 2003 批量增加用户

下一篇:日记

给主人留下些什么吧!~~

chinaunix网友2009-03-28 23:27:39

使用excel 的函数功能 定义update的字符串 然后保存成upd.sql 执行之. 学习了

chinaunix网友2008-10-10 10:41:55

good