首页 文章

Oracle分区表的唯一索引

提问于
浏览
1

我在Oracle 11g中有一个表 Customer_Chronics . 该表有三个关键列,如下所示:

  • branch_code

  • customer_id

  • 期间

我已按表 branch_code 列表进行分区,现在我陷入了两难境地 . 哪个更好:

  • 在Customer_Chronics上创建唯一索引indexNumberOne(PERIOD,CUSTOMER_ID);

  • 在Customer_Chronics上创建唯一索引indexNumberTwo(branch_code,PERIOD,CUSTOMER_ID);

period, customer_id 实际数据必须是唯一的 . 如果我只在这两列上放置一个唯一索引,Oracle会在插入新记录时检查表中的所有分区吗?

2 回答

  • 2

    强制唯一性的唯一方法是对感兴趣的列进行唯一约束 . 所以这是你的第一选择 . 在这种情况下,数据库将检查所有分区中的所有值 . 但是因为它是一个独特的索引,不管 table 有多大(如果这是你关心的话),也不应该花太长时间 .

  • 1

    是的,如果仅在这两列上放置唯一索引,Oracle将创建一个全局索引并检查所有分区 . 这是我在某个时候面临的挑战之一,因为我们更喜欢大表的本地索引(小表应该没问题) .

相关问题