我有一個包含以下各列的父表:
- PARENT_ID:UUID
- EVENT_DATE:TIMESTAMP
- DATA_COLUMN1:VARCHAR2(255)
- DATA_COLUMN2:VARCHAR2(255)的Oracle 11g引用分區和索引
表格是EVENT_DATE分區的範圍。數據只保留一個月,最後一個分區每天都會丟失。
按照我的理解,使用PK的全局索引會導致在刪除分區時性能低於標準。這意味着此表的PK必須基於PARENT_ID + EVENT_DATE以創建本地索引。
我有第二個表是第一個孩子(通過一對多關係)。它具有以下欄目:
- CHILD_ID:UUID
- PARENT_ID:UUID - FK到父表
- DATA_COLUMN3:VARCHAR2(255)
- DATA_COLUMN4:VARCHAR2(255)
進行分區子表,我決定使用參考分區。它的一大優點是:它不需要複製子表中的分區鍵。然而,根據我的推理,實現這一目標的唯一方法是通過全球指數。這是我的思路:
- 對於父表的唯一索引是本地的,PK必須包括分區鍵,例如,活動日期。
- 外鍵約束不能只引用部分PK。因此,子表必須包含PARENT_ID和EVENT_DATE列。
更重要的是,我也讀了「當使用引用分區,大多數子表的索引 應定義爲全球性的,除非有令人信服的理由 對於給定的索引被定義爲本地的。」 (http://www.nocoug.org/download/2010-05/Zitelli-Reference_Partitioning_NoCOUG.pdf)。
我錯過了一些東西,或者有沒有辦法使用引用分區沒有全局索引或複製數據?
有關如何引用分區如何與本地/全局索引一起使用的解釋將非常感謝!