查詢某個表的索引屬於哪個表空間的sql語句
select tablespace_name from dba_indexes where index_name = ;
alter index rebuild [online];
是否加online要看你的系統需求因為不加online時rebuild會阻塞一切DML操作
rebuild不是將索引刪除然後再創建rebuild時不會為了排序去走fts
而是遍歷舊索引然後在臨時段中建立相應結構完了後移到新索引中
將索引刪除然後再創建是最不好的方法
alter index rebuild online的機制
當我們對索引進行rebuild時如果不加online選項oracle則直接讀取原索引的數據;當我們添加online選項時oracle是直接掃描表中的數據那如何維護索引段數據的一致性呢?就是從引開始創建到索引創建完成這段時間的數據改變
從索引開始rebuild online開始的那一刻起oracle會先創建一個SYS_JOURNAL_xxx的系統臨時日志表結構類似於mlog$_表通過內部觸發器記錄了開始rebuild索引時…
***online是重構索引時原索引還可用就是另外記日志
降低效率的
***另外要注意看看表空間夠不夠因為是先建後刪
From:http://tw.wingwit.com/Article/program/Oracle/201311/18409.html