我想刪除一個空的分區,但我知道oracle將所有索引設置爲不可用,無論何時執行分區DDL語句(如DROP),因此,我應該將UPDATE GLOBAL INDEXES
添加到語句中,儘管看起來沒有必要。刪除空白分區。索引是否被標記爲無效?
於是我想出了this post它說,它不會將其標記爲不可用,所以我決定來測試它。事情是,我測試它在兩個Oracle版本,它的工作不同!
有兩個實例:
- DBA(
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
) - DBB(
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
)
在DBA它標誌着它們含有比其他分貝相同的數據爲無效和DBB (用exp/imp克隆),它會成功刪除而不標記它們不可用。
是否可以明確地告訴Oracle要保持索引可用,因爲在該分區中沒有數據(無需重建索引)?
如果您看到不同之處,則可能取決於您的統計信息的構建時間。我使用11.2,並且在截斷(或刪除)分區時,我總是看到標記爲UNUSABLE的索引。現在,如果你截斷了一個Oracle知道爲空的空分區(你在建立統計信息後是空的),那麼PERHAPS Oracle足夠聰明地知道你的truncate語句不會影響任何內容,並且簡單地將索引保留爲VALID。只是猜測雖然 – tbone