12
返回列表 发新帖
楼主: ccsnmoracle

[讨论] [疑问]怎样恢复SEQUENCE

[复制链接]
论坛徽章:
9
ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:44ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:482013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08
11#
发表于 2010-7-8 22:35 | 只看该作者
如果不允许断号,就不应该用oracle的sequence. 这是原则性的问题.

许多进程同时使用没有cache属性的sequence时,可能大量发生row cache lock事件等待。对没有使用cache 的sequence,如果调用nextval,则每次数据字典信息都应被修改,以ssx模式获取row cache lock。因为ssx之间不存在共享性,所以在此过程中发生争用。

rac环境下,使用cache属性的同时,可以保障各节点之间sequence的顺序是可能的。

在RAC多节点环境下,Sequence的Cache属性给性能带来的影响比单节点环境更严重。因此尽量赋予cache+noorder属性,并要给予足够的cache值。如果需要保障顺序,必须赋予cache+order属性。但这时为了保障顺序,实例之间需要不断的交换数据。因此性能稍差。

使用道具 举报

回复
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010广州亚运会纪念徽章:击剑
日期:2010-11-03 11:00:36ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:19奥运会纪念徽章:摔跤
日期:2012-08-21 10:04:04优秀写手
日期:2014-02-15 06:00:132014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-05-19 11:17:08
12#
 楼主| 发表于 2010-7-11 14:13 | 只看该作者

回复 #11 ucgary 的帖子

在RAC环境下,sequence的cache是怎样传递的??

应该也是也block buffer为单位传递的吧?!
由于一个block buffer的容量可以存储一定量的sequence的值,也就是说,一个block buffer中可以容纳
多个sequence cache。

所以在cache+noorder条件下,node1一次就可以得到多个cache,比如1-15。
      在cache+order条件下,node1一次就可以得到1个cache。

使用道具 举报

回复
论坛徽章:
41
马上加薪
日期:2014-02-19 11:55:14铁扇公主
日期:2012-02-21 15:02:402012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53
13#
发表于 2010-7-12 17:05 | 只看该作者

回复 #8 ccsnmoracle 的帖子

在RAC环境中如果出现这样的瓶颈,可以考虑使用这个策略:
1.在不同的RAC节点上部署不同的应用以便降低cache fusion;
2.修改应用,在RAC不同的节点上取不同的sequence。

secooler

使用道具 举报

回复
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010广州亚运会纪念徽章:击剑
日期:2010-11-03 11:00:36ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:19奥运会纪念徽章:摔跤
日期:2012-08-21 10:04:04优秀写手
日期:2014-02-15 06:00:132014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-05-19 11:17:08
14#
 楼主| 发表于 2010-7-13 09:21 | 只看该作者

回复 #13 secooler 的帖子

secooler  sir,

能讲得再详细一点吗?

我不太理解。

再者,sequence cache应该也是以block buffer为单位传递的吧?!?对吧?
以下说法不可能吗??
所以在cache+noorder条件下,node1一次就可以得到多个cache,比如1-15。
      在cache+order条件下,node1一次就可以得到1个cache。

使用道具 举报

回复

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

本版积分规则 发表回复

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