一个2000万记录的主表更新问题,日增量处理,求高手建议?

limaowa 2006-11-24 02:05:46
我在做一个银行的帐户客户关系表,全量数据是2000万多,活存日增量70万,一般情况下用的是主表更新,就是先DELETE * FROM 全量表A EXISTS (SELECT * FROM 日增量表B WHEREA.ACCT_ID =B.ACCT_ID ),然后把当日增量数据INSERT 近全量表就可以了,但是这里的DELETE大概40-50万,在我们的数据库上需要5-6个小时,日增量处理显然是不可实现的方案,请问,哪位有好的解决方法,谢谢!
...全文
413 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxdq 2006-12-05
  • 打赏
  • 举报
回复
...不知道你的数据库类型和业务情况
limaowa 2006-12-03
  • 打赏
  • 举报
回复
gxdq(石老人) 您好:
关于数据库的性能确实是个问题,我们目前是测试机,而且两个项目同时开发,近几天发现不用这么长的时间了,呵呵
不过,这里的主要思路方法----主表更新 估计是很难提高的了,也不可能每天批处理对索引进行建珊的动作,要想其他的办法只能是在业务方面,我们打算不对 余额变化的进行更新,每日只更新开销户部分,月底从积数表更新余额,这样可以减少被删除的记录数,对不?
如果数据库性能可以在半小时内处理完这个更新,恐怕也不会满足需要,我们日增量的时间窗是3个小时左右,所以,还得考虑更好的方法哦
2344095 2006-11-30
  • 打赏
  • 举报
回复
先删除主表A 再 insert  主表的索引会影响速度,
应该先update 主表, 然后再删除 日增量表B的重复数据,最后再插入主表A
gxdq 2006-11-30
  • 打赏
  • 举报
回复
日增量70万有这么慢吗?我们用PCSERVER在8000万的表上每天作200万的DEL & INSERT不过30分钟

我是sybase ase12。5。3 HPDL580

银行的机器不会比这个差吧
scorpiowell 2006-11-30
  • 打赏
  • 举报
回复
为ACCT_ID 字段创建索引
先update存在的,再insert不存在的。
upwind1982 2006-11-26
  • 打赏
  • 举报
回复
不太明白为什么要delete,应该是因为上一天的纪录不全吧,先delete然后重新写入?如果是这样,delete的效率太低了,可以直接update:
update A set A.* =B.* from A A,B B where A.Acct_id=B.Acct_id

然后
insert into A select * from B where not exists(SELECT * FROM 日增量表B WHERE A.ACCT_ID =B.ACCT_ID)
sxnucseven 2006-11-24
  • 打赏
  • 举报
回复
弱弱的问一句:
update 存在的 再 Insert 不存在的可以吗?
我不太懂,学习。

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧