oracle本地索引和全局索引


查詢出有問題索引分區

select 'ALTER INDEX BICORE.'||INDEX_NAME ||' REBUILD SUBPARTITION '||SUBPARTITION_NAME ||';' from dba_ind_subpartitions A where INDEX_owner = 'BICORE' AND STATUS <>'USABLE'

將已有的分區表全局索引改為本地索引

由於當初建表的時候建了兩張需要存儲大量數據的分區表,卻沒有建立本地索引,而是使用建立主鍵的時候,Oracle自動建立的全局索引。
最近由於表空間問題drop了這兩張表的部分分區,結果導致了ora-01502,索引失效了。
在網上找了很多方法,用如下方法將全局索引改為了本地索引,避免了以后再次對分區進行操作時索引失效的問題。

1. 先刪除主鍵約束,oracle會自動刪除建表時根據主鍵自動創建的全局索引

alter table tablename drop PRIMARY KEY;

2. 重建主鍵並指定索引為本地索引

alter table tablename add constraint PK_XXX PRIMARY KEY(column1,column2,....) using index local tablespace XXX;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM