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