將已有的分割槽表全域性索引改為本地索引

2021-07-02 05:47:26 字數 421 閱讀 1975

由於當初建表的時候建了兩張需要儲存大量資料的分割槽表,卻沒有建立本地索引,而是使用建立主鍵的時候,oracle自動建立的全域性索引。

最近由於表空間問題drop了這兩張表的部分分割槽,結果導致了ora-01502,索引失效了。

在網上找了很多方法,用如下方法將全域性索引改為了本地索引,避免了以後再次對分割槽進行操作時索引失效的問題。

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

alter table tablename drop primary key;

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

alter table tablename add constraint pk_***  primary key(column1,column2,....) using index local tablespace ***;

將普通表改為分割槽表

oracle的普通表沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,下面介紹三種效率比較高的方法,並說明它們各自的特點。方法一 利用原表重建分割槽表。步驟 sql create table t id number primary key,time date 表已建立。sql...

oracle將普通表改為分割槽表

oracle的普通表沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,下面介紹三種效率比較高的方法,並說明它們各自的特點。方法一 利用原表重建分割槽表。步驟 sql create table t id number primary key,time date 表已建立。sql...

oracle分割槽表中本地索引和全域性索引的適用場景

背景 分割槽表建立好了之後,如果需要最大化分割槽表的效能就需要結合索引的使用,分割槽表有兩種索引 本地索引和全域性索引。既然存在著兩種的索引型別,相信存在即合理。既然存在就會有存在的原因,也就是在特定的場景中就更能發揮出索引的效能的 本文件通過測試,總結出兩種索引的適合的場景 測試環境 資料庫版本 ...