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