楼主: fromeast

利用rowid快速在线更新海量数据

[复制链接]
论坛徽章:
0
151#
发表于 2009-3-31 03:10 | 只看该作者
非常值得学习!

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:兔
日期:2009-11-13 10:54:06
152#
发表于 2009-3-31 09:47 | 只看该作者
学习。收藏。

使用道具 举报

回复
论坛徽章:
15
马上加薪
日期:2014-12-03 12:48:23双子座
日期:2016-01-15 10:47:09秀才
日期:2016-01-13 12:14:26秀才
日期:2015-12-25 15:31:10双子座
日期:2015-12-15 09:58:52巨蟹座
日期:2015-11-17 17:17:02白羊座
日期:2015-11-09 13:49:13双子座
日期:2015-11-02 10:25:11秀才
日期:2015-09-21 09:46:16水瓶座
日期:2015-08-25 15:30:04
153#
发表于 2009-3-31 10:23 | 只看该作者
oracle的数据块包含了多个物理块,连续的rowid会在一个块里吧,这样的话就提高了利用率,不会说一个块的开头有用,后面的却无用的情况。

使用道具 举报

回复
论坛徽章:
15
马上加薪
日期:2014-12-03 12:48:23双子座
日期:2016-01-15 10:47:09秀才
日期:2016-01-13 12:14:26秀才
日期:2015-12-25 15:31:10双子座
日期:2015-12-15 09:58:52巨蟹座
日期:2015-11-17 17:17:02白羊座
日期:2015-11-09 13:49:13双子座
日期:2015-11-02 10:25:11秀才
日期:2015-09-21 09:46:16水瓶座
日期:2015-08-25 15:30:04
154#
发表于 2009-3-31 10:33 | 只看该作者

回复 #45 fromeast 的帖子

学习学习

使用道具 举报

回复
论坛徽章:
0
155#
发表于 2009-3-31 12:41 | 只看该作者
好贴收藏

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
156#
发表于 2009-3-31 14:55 | 只看该作者
学习了,mark

使用道具 举报

回复
论坛徽章:
4
生肖徽章2007版:蛇
日期:2009-09-08 10:43:39生肖徽章2007版:鼠
日期:2009-10-29 11:41:362010新春纪念徽章
日期:2010-03-01 11:20:052011新春纪念徽章
日期:2011-02-18 11:43:33
157#
发表于 2009-3-31 15:24 | 只看该作者

回复 #1 fromeast 的帖子

如果用到order by T1.rowid, 能提高效率, 那么多的数据很容易产生snap shot too old的错误。

bulk collect 应该是个好方法,楼主的版本是9.2.0.8, 如果是10g, bulk collect应该有很大的提高。

使用道具 举报

回复
论坛徽章:
4
生肖徽章2007版:蛇
日期:2009-09-08 10:43:39生肖徽章2007版:鼠
日期:2009-10-29 11:41:362010新春纪念徽章
日期:2010-03-01 11:20:052011新春纪念徽章
日期:2011-02-18 11:43:33
158#
发表于 2009-3-31 15:29 | 只看该作者
另外,如果 应用order by 在开发机上提高了性能, 产生的snap shot too old如何解决。 在开发机上没有问题了,那么到生产环境的机器上不知道是不是还得调整参数来弥补snap shot too old 错误。

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
9
授权会员
日期:2005-12-23 16:28:18会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44铁扇公主
日期:2007-10-26 16:08:47生肖徽章2007版:鸡
日期:2008-01-02 17:35:532009新春纪念徽章
日期:2009-01-04 14:52:282009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
159#
发表于 2009-3-31 17:57 | 只看该作者
原帖由 iamclq 于 2008-9-15 20:30 发表



rowid 排序的话,相同块的数据就会排在一起更新,这样就避免了数据读进来只更新一部分数据,然后又换出,更新另一部分时又要调进来。我想楼主是这个意思吧。



应该是这个意思!

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
9
授权会员
日期:2005-12-23 16:28:18会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44铁扇公主
日期:2007-10-26 16:08:47生肖徽章2007版:鸡
日期:2008-01-02 17:35:532009新春纪念徽章
日期:2009-01-04 14:52:282009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
160#
发表于 2009-3-31 18:01 | 只看该作者
原帖由 zw81929 于 2008-9-19 18:45 发表


道理说的很清楚,但是恕我愚昧,“只够放一个table的block”这块好像和你说的对不上吧。。



说成:只够放一个block应该好些

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表