ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 3146|回复: 41

求一亿条数据的更新方法 [复制链接]

注册会员

初级会员

精华贴数
0
技术积分
106
社区积分
0
注册时间
2006-4-13
论坛徽章:
0
发表于 2009-6-26 11:50:44 |显示全部楼层
现在有一事实表,表上按时间分区,总共有1亿多条,有几个分区较大,4000多万数据.现在需要update这个表中的其中4个列,当这几个列为空时更新为-1.我实在是担心这个更新的速度,各位有没有什么好的办法啊

select count(1) from fact_sales;

COUNT(1)               
----------------------
111064378
fafdafdfad

注册会员

一般会员

精华贴数
0
技术积分
1086
社区积分
162
注册时间
2005-7-29
论坛徽章:
5
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:19:06ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
发表于 2009-6-26 11:57:54 |显示全部楼层
弄个循环,批量更新,每1000条commit一次

使用道具 举报

注册会员

笑笑

精华贴数
0
技术积分
3717
社区积分
1634
注册时间
2008-11-26
论坛徽章:
44
2010广州亚运会纪念徽章:台球
日期:2010-09-14 17:25:292011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-11-11 16:24:352010广州亚运会纪念徽章:卡巴迪
日期:2011-04-17 21:19:23参与SAP云计算之旅活动纪念
日期:2011-05-23 11:02:23双黄蛋
日期:2011-07-08 17:45:16ITPUB官方微博粉丝徽章
日期:2011-07-11 13:10:57咸鸭蛋
日期:2011-08-15 12:56:26灰彻蛋
日期:2012-01-06 11:52:322012新春纪念徽章
日期:2012-01-04 11:53:54生肖徽章2007版:兔
日期:2011-01-20 12:58:49数据库板块每日发贴之星
日期:2010-09-26 01:01:01
发表于 2009-6-26 11:58:01 |显示全部楼层
要更新的数据量有多大?就是为null的!

使用道具 举报

精华贴数
0
技术积分
3344
社区积分
2429
注册时间
2005-8-24
论坛徽章:
708
授权会员
日期:2007-08-10 01:06:30迷宫蛋
日期:2012-02-08 13:34:07灰彻蛋
日期:2012-02-02 17:29:52紫蛋头
日期:2012-01-31 11:07:29灰彻蛋
日期:2012-01-30 14:53:25蛋疼蛋
日期:2012-01-13 09:54:28鲜花蛋
日期:2012-01-10 09:40:54紫蛋头
日期:2012-02-09 17:25:52鲜花蛋
日期:2012-02-08 08:42:41咸鸭蛋
日期:2012-01-09 10:01:52灰彻蛋
日期:2012-02-09 18:02:52灰彻蛋
日期:2012-01-30 16:38:29
发表于 2009-6-26 12:09:16 |显示全部楼层
CATS

使用道具 举报

注册会员

鸡肋

精华贴数
0
技术积分
14150
社区积分
87
注册时间
2006-9-15
论坛徽章:
62
2012新春纪念徽章
日期:2012-01-04 11:51:22
发表于 2009-6-26 12:14:53 |显示全部楼层
写个过程批量提交,1W一提交
退隐江湖~
躲得过刀光剑影,躲不过蚊虫叮咬

使用道具 举报

注册会员

初级会员

精华贴数
0
技术积分
106
社区积分
0
注册时间
2006-4-13
论坛徽章:
0
发表于 2009-6-26 12:30:47 |显示全部楼层
cats我也想过,不过最后还要在新表上建立索引这些,会不会太慢

利用bulk 集合,limit限制数据,然后forall批量提交也想过,只是数据量这么大,并且要更新
update sales set a=-1 where a is null
update sales set b=-1 where b is null
如果写成 update sales set a=-1,b=-1 where a is null or b is null 这样就不对了



还有其他办法没有呢?

[ 本帖最后由 xcj311 于 2009-6-26 12:41 编辑 ]
fafdafdfad

使用道具 举报

注册会员

月光无寒

精华贴数
0
技术积分
646
社区积分
5
注册时间
2005-7-19
论坛徽章:
2
2008新春纪念徽章
日期:2008-02-13 12:43:032012新春纪念徽章
日期:2012-01-04 11:50:44
发表于 2009-6-26 12:37:17 |显示全部楼层
1e条,本身就不可能很快完成,bulk可以试试
欢迎访问 www.askoracle.com.cn中国的ASKTOM  欢迎交换链接,欢迎高手入群,具体请见网站说明

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
1267
社区积分
85
注册时间
2005-9-14
论坛徽章:
4
授权会员
日期:2007-08-23 08:30:28ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB元老
日期:2009-03-06 11:56:31
发表于 2009-6-26 12:38:57 |显示全部楼层
forall每多少条更新提交可能会快一些吧!

使用道具 举报

精华贴数
0
技术积分
3842
社区积分
386
注册时间
2007-11-6
论坛徽章:
61
皇马
日期:2009-02-13 09:38:53鲜花蛋
日期:2011-05-30 21:23:492010广州亚运会纪念徽章:排球
日期:2011-04-18 22:00:582010广州亚运会纪念徽章:柔道
日期:2011-04-08 23:11:212011新春纪念徽章
日期:2011-02-18 11:43:342011新春纪念徽章
日期:2011-01-04 10:38:21ITPUB元老
日期:2010-11-27 22:43:01ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222010广州亚运会纪念徽章:台球
日期:2010-09-10 22:15:542010广州亚运会纪念徽章:拳击
日期:2010-09-09 13:19:30佛罗伦萨
日期:2009-09-29 10:22:52比利亚雷
日期:2009-09-21 10:56:22
发表于 2009-6-26 12:42:57 |显示全部楼层
用fetch bulk    forall
试试吧

1e太多了
巴萨尼奥:葛莱西安诺比全威尼斯城里无论哪一个人都更会拉上一大堆废话.他的道理就像藏在两桶砻糠里的两粒麦子,你必须费去整天工夫才能够把它们找到.......

Sam:从Oracle Database 11G的大量资料中提取正确的数据库管理过程绝非易事.

使用道具 举报

注册会员

西太平洋大学博士后

精华贴数
2
技术积分
20269
社区积分
805
注册时间
2007-12-5
论坛徽章:
5
授权会员
日期:2010-12-06 19:50:26数据库板块每日发贴之星
日期:2011-09-03 01:01:01迷宫蛋
日期:2011-09-08 16:30:08ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
发表于 2009-6-26 12:43:24 |显示全部楼层
非更新不可吗?coder脑子进水了?
生活就像被轮奸,如果你无力反抗,就闭上眼睛享受吧。没准还能高潮呢。

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部