是否在没有主键问题的情况下创建大型表 - Oracle 11g?

时间:2014-05-23 10:27:22

标签: sql oracle sequence

在Oracle 11g中,我考虑创建一个如下所示的表:

CREATE TABLE SOME_TABLE (
  MACHINE_ID      NUMBER(10,0) NOT NULL ENABLE,
  CYCLE_ID        NUMBER NOT NULL ENABLE,
  START_TIME      TIMESTAMP (6) NOT NULL ENABLE,
  DATA            VARCHAR2(255),
  CONSTRAINT "PK_SOME_TABLE" PRIMARY KEY ("MACHINE_ID", "CYCLE_ID")
)

此表每天将收到约250万条记录。

CYCLE_ID取自序列,是主键的一部分。

我担心为这个数据量使用CYCLE_ID的序列是一个坏主意,因为序列将在某个时间点重新开始,从而导致重复的键错误。

从表中删除CYCLE_ID会更好吗,从而使表没有唯一键吗?如果没有唯一的主键,这么大的数据表会有什么问题呢?

非常感谢。

1 个答案:

答案 0 :(得分:1)

根据我的观点,不要从表中删除序列而是改变序列。从序列中删除循环子句。这将解决您的问题,因为序列永远不会变为0,您的表将始终具有主键。