【问题标题】:Enabling Oracle Constraint on Multiple Tables在多个表上启用 Oracle 约束
【发布时间】:2012-04-12 14:12:09
【问题描述】:

对于我使用 Oracle 11.2.0 作为后端的业务应用程序,我们将有一系列表 Foo{0},其中 {0} 是日期,每个月末都有一个表 (关于为什么需要这样做的长篇大论,但这些是我的行军命令)。每个表都有一个主键约束和一个索引,所有表都使用相同的列。除了为所有表定义约束和索引之外,是否可以创建每个表并将它们应用于所有表?感谢您的帮助。

【问题讨论】:

  • 为什么不按日期创建一个表并对其进行分区?
  • @a_horse_with_no_name - 可能是因为分区是企业版许可证的额外收费,因此昂贵
  • 现在的主要问题是规模;我们目前将所有数据都放在一张表中,但由于应用程序的要求,它会创建大量冗余数据。我们很快就会迁移到 SQL/Azure,因此我们正在努力寻找减少这些冗余的方法。每个月,大约有 25,000 条记录被写入这些表中,每条记录超过 100 列。

标签: oracle indexing constraints


【解决方案1】:

没有。如果您需要 12 个单独的表,则需要定义 12 个单独的主键约束(如果您不希望 Oracle 在创建约束时自动创建索引,则需要定义 12 个单独的索引)。

【讨论】:

  • 谢谢;这就是我的想法,但问起来永远不会有坏处!
【解决方案2】:

没有充分的理由在 Oracle 11.2 中创建这 12 个表。

我建议:

  • 创建一张表。分成12个
  • 使用关联的全局索引创建单个主键约束
  • 如果需要与现有代码兼容,则为 Foo1Foo2 ... Foo12 在此表上创建视图

【讨论】:

  • 谢谢WW;每个表都特定于 AsOfDate(每月数据更新),但我认为如果我只是将 AsOfDate 包含在主键中,它将使我们到达我们想要的位置。
猜你喜欢
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
相关资源
最近更新 更多