`
baichuan
  • 浏览: 6878 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[探讨]一个数据库采用一个sequence 可行否?

阅读更多
以前一直没有考虑过这个问题,认为一个Table对应一个Sequence 好像是天经地义的事情;昨天一位同事提出整个数据库采用一个Sequence的想法,google了一把,也没有太多结果。
作为表的主键,我们系统一般是加上时间前缀 ,为 yyyyMMdd + sequenceid 形成,主键冲突方面不会有太多担心,主要担心多用户同时请求,是否会造成性能上的瓶颈。
查书籍《ORACLE 10G 宝典》上如是说:
引用
如果多用户同时提出请求,序列将按照串行机制依次处理各个用户请求,...,序列生成下一个整数的速度十分快,即使在并发用户数量很多的联机事务处理环境中,对请求也不会造成明显的延迟


另外,再加上CACHE ,性能方面更不会有问题。

综上,提出来供大家探讨。

分享到:
评论
6 楼 Magicloud 2009-01-17  
kunee 写道
问题是为什么要这么搞,加SEQ麻烦?

使用同一个序列,对应定义所有数据对象为同根单一继承。
5 楼 LucasLee 2009-01-16  
Oracle里本身就有Sequence,你干嘛还自己搞一个?
况且yyyyMMdd + sequenceid 只能是字符串类型的,多占空间啊。
整个数据库共用一个Sequence问题不大,因为一般的应用中,记录非常多的表只有几个,对于ID字段空间的浪费还不是很大。
4 楼 kunee 2009-01-16  
问题是为什么要这么搞,加SEQ麻烦?
3 楼 Magicloud 2009-01-15  
以前设计面向数据库的cms时,用过。理论上没问题,但不知道大规模创建数据时是否会因为锁导致效率低……
2 楼 sdh5724 2009-01-15  
除非你的数据库写数据很频繁, 可能这个东西被LOCK的厉害, 一般来说, 是不会有问题。 但是, 不符合设计的原则, 不是么?
1 楼 zhouzhao21 2009-01-15  
baichuan 写道
认为一个Table对应一个Sequence 好像是天经地义的事情

一起是这样。这样应该也没什么坏处。

相关推荐

Global site tag (gtag.js) - Google Analytics