论坛首页 综合技术论坛

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

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


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

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

   发表时间:2009-01-15  
baichuan 写道
认为一个Table对应一个Sequence 好像是天经地义的事情

一起是这样。这样应该也没什么坏处。
0 请登录后投票
   发表时间:2009-01-15  
除非你的数据库写数据很频繁, 可能这个东西被LOCK的厉害, 一般来说, 是不会有问题。 但是, 不符合设计的原则, 不是么?
0 请登录后投票
   发表时间:2009-01-15  
以前设计面向数据库的cms时,用过。理论上没问题,但不知道大规模创建数据时是否会因为锁导致效率低……
0 请登录后投票
   发表时间:2009-01-16  
问题是为什么要这么搞,加SEQ麻烦?
0 请登录后投票
   发表时间:2009-01-16  
Oracle里本身就有Sequence,你干嘛还自己搞一个?
况且yyyyMMdd + sequenceid 只能是字符串类型的,多占空间啊。
整个数据库共用一个Sequence问题不大,因为一般的应用中,记录非常多的表只有几个,对于ID字段空间的浪费还不是很大。
0 请登录后投票
   发表时间:2009-01-17  
kunee 写道
问题是为什么要这么搞,加SEQ麻烦?

使用同一个序列,对应定义所有数据对象为同根单一继承。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics