`
baichuan
  • 浏览: 7189 次
  • 性别: 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 好像是天经地义的事情

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

相关推荐

    基于数据库的分布式发号器-viemall-sequence

    基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-...

    京东金融数据库开发管理规范-SEQUENCE

    - **命名格式1**:当一个表只需要一个序列时,序列的命名格式为:“seq_”+表名。 - **命名格式2**:当同一个表中存在多个字段需要使用序列时,序列的命名格式为:“seq_”+表名+“_”+字段名。 - 例如:`seq_b2c...

    Sequence简单介绍.pdf

    可以通过`CREATE SEQUENCE`语句创建一个序列,并且能够通过`NEXTVAL`和`CURRVAL`来获取序列的下一个值以及当前值。 - **创建序列**: 使用`CREATE SEQUENCE`命令来定义序列。 ```sql CREATE SEQUENCE emp_sequence...

    Oracle数据库转Mysql数据库

    Oracle 数据库转换为 Mysql 数据库是一个复杂的过程,需要对数据库设计、数据类型转换、sequence 实现、数据库引擎转换和物理模型导出等多个方面进行考虑和处理。通过本文的指导,用户可以成功地将 Oracle 数据库...

    Activiti 学习笔记七:连线(SequenceFlow)

    每个SequenceFlow都有一个来源和一个目标,通常在 BPMN 2.0 图形化表示中以带箭头的线来呈现。这些线连接了泳道内的各个任务、网关或其他流程元素,定义了流程实例在不同阶段的执行顺序。 二、SequenceFlow的条件 ...

    自动编号(c#2005)数据库采用access2007

    综上所述,实现“自动编号(c#2005)数据库采用access2007”的过程包括以下几个关键步骤: 1. 在Access中设计数据库表,创建用于存储自定义编号的字段。 2. 在C#中编写代码生成自定义编号,可以使用`DateTime` 和...

    sequence等同于序列号

    以下是一个创建`sequence`的基本语法: ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次递增的数量 START WITH 1 -- 起始值 MAXVALUE 10000 -- 最大值 NOMAXVALUE -- 如果不设置最大值 NOCYCLE -- 不...

    sequence-diagram.zip

    sequence-diagram-js是一个基于JavaScript的开源库,用于生成序列图,其特色在于支持自定义颜色,使得设计出的序列图更具个性化和可读性。本篇文章将深入探讨sequence-diagram-js的核心功能,依赖库,以及如何使用...

    Oracle sequence 重置(失效恢复)

    1. **数据迁移:** 当数据从一个环境迁移到另一个环境时,如果只是简单地复制了表数据而没有同时调整Sequence的起始值,则可能导致Sequence失效。 2. **误操作:** 如果不小心删除了Sequence,或者手动修改了...

    oracle 存储过程使用 sequence

    Oracle存储过程是数据库管理系统中一个非常重要的特性,它允许开发者编写包含一系列SQL和PL/SQL语句的程序单元,以实现更复杂的业务逻辑。在Oracle中,Sequence则是一种自增序列号生成器,通常用于主键或者唯一标识...

    Ruby-ActiveRecordTurntable是一个数据库分片的ActiveRecord扩展

    数据库分片是将一个大型数据库拆分为多个小型数据库,每个部分(或“分片”)都存储在不同的服务器上。这样做的好处包括: 1. **负载分散**:每个服务器只需要处理一部分数据,从而减轻单个数据库的压力。 2. **...

    基本数据库概念 基本数据库概念

    2. **触发器**:触发器是数据库中的一个特殊类型的存储过程,它会在特定的DML操作(INSERT、UPDATE、DELETE)发生时自动执行。触发器可以用来实现复杂的业务规则,如级联更新或删除,以及审计功能。 3. **存储过程*...

    生成oracle数据库中的所有sequence的语句

    可以根据oracle数据库中存在的sequence,生成建立语句

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    例如,使用 S_S_DEPART SEQUENCE.insert 一个新的部门记录: ```sql INSERT INTO S_Depart(DepartId, DepartName, DepartOrder) VALUES (S_S_Depart.NEXTVAL, '12345', 1); ``` 然后,使用 CURRVAL 来获取当前值: `...

    invalid multibyte character sequence 870告警1

    在计算机科学中, Multibyte Character Sequence 指的是使用多个字节来表示一个字符的编码方式。这种编码方式主要用于表示非ASCII字符,例如中文字符。在Unicode标准中,每个字符可以使用多个字节来表示,例如UTF-8...

    oracle中sequence介绍及应用

    可以通过`DROP SEQUENCE`命令删除一个Sequence。 ```sql DROP SEQUENCE ; ``` #### 五、Sequence的应用案例 ##### 实例1:利用Sequence实现主键自增 假设有一个表`TEST`,我们希望其主键`NID`能够自动递增。 1....

    vcenter6.0采用oracle11g独立数据库

    为了实现这一点,我们需要在现有的一台服务器上安装Oracle数据库,并创建一个专门用于vCenter的数据表空间和用户。此外,vCenter Server本身也将部署在另一台独立的服务器上。 #### 二、准备工作 - **vCenter 6.0...

    SequenceDiagram.zip

    控件名为**SequenceDiagram**,可能是一个自定义的UI组件,它可以被集成到.NET应用中,用于展示和交互式地操纵序列图。它可能支持创建、编辑和显示序列图,包括对象实例、生命线、消息传递、激活期、条件分支和循环...

    Sequence to Sequence Learning with Neural Networksv论文

    《Sequence to Sequence Learning with Neural Networks》是一篇由Ilya Sutskever, Oriol Vinyals和Quoc V. Le共同撰写的论文,三位作者都来自Google公司。这篇论文在自然语言处理领域有着重要的影响,特别是在序列...

    oracle中的sequence实现主键增长

    Sequence可以在不依赖于任何表的情况下独立创建,并且可以在插入记录时动态地获取下一个可用的序列号。 以下是对Sequence创建和使用的详细说明: 1. **创建Sequence**: 使用`CREATE SEQUENCE`语句创建Sequence,...

Global site tag (gtag.js) - Google Analytics