關於rebuild index online 及drop index後重建問題
rebuild index ..
當我們對索引進行rebuild時,如果不加online選項,oracle則直接讀取原索引的資料;當我們新增online選項時, oracle是直接掃描表中的資料,維護索引段資料的一致性就是從索引開始建立到索引建立完成這段時間的資料改變的同步 。 從索引開始rebuild online 的那一刻起,oracle會先建立一個SYS_JOURNAL_xxx的系統臨時日誌表,結構類似於物化檢視日誌表mlog$_表, 透過內部觸發器, 記錄了開始rebuild索引時表上所發生的改變的記錄,當索引已經建立好之後, 新資料將直接寫入索引,只需要把SYS_JOURNAL_xxx日誌表中的改變維護到索引中即可 。
在rebulid index online 的時候走的是full table scan,這時候需要排序;在rebulid index 走的index ffs,而ffs搜尋的順序是根據 leaf block 的物理儲存順序相關 ,也需要排序 。在rebuild index時候還是需要用到 temp空間來排序的 。
-----------------------------------------------------
drop index , then create index again .
drop index 之後, index 重新建立相對 rebuild index 效果是否會更好 ? 在 index 碎片方面或其他效能方面 ?
如果一個table 有資料 2000 萬筆, 在刪除 1/3 的記錄之後,需要重新建立index , 那麼採用哪種方式更好 ?
當我們對索引進行rebuild時,如果不加online選項,oracle則直接讀取原索引的資料;當我們新增online選項時, oracle是直接掃描表中的資料,維護索引段資料的一致性就是從索引開始建立到索引建立完成這段時間的資料改變的同步 。 從索引開始rebuild online 的那一刻起,oracle會先建立一個SYS_JOURNAL_xxx的系統臨時日誌表,結構類似於物化檢視日誌表mlog$_表, 透過內部觸發器, 記錄了開始rebuild索引時表上所發生的改變的記錄,當索引已經建立好之後, 新資料將直接寫入索引,只需要把SYS_JOURNAL_xxx日誌表中的改變維護到索引中即可 。
在rebulid index online 的時候走的是full table scan,這時候需要排序;在rebulid index 走的index ffs,而ffs搜尋的順序是根據 leaf block 的物理儲存順序相關 ,也需要排序 。在rebuild index時候還是需要用到 temp空間來排序的 。
-----------------------------------------------------
drop index , then create index again .
drop index 之後, index 重新建立相對 rebuild index 效果是否會更好 ? 在 index 碎片方面或其他效能方面 ?
如果一個table 有資料 2000 萬筆, 在刪除 1/3 的記錄之後,需要重新建立index , 那麼採用哪種方式更好 ?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-621567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- index rebuild online的問題IndexRebuild
- “rebuild index online hang住" 問題解析RebuildIndex
- 重建索引index rebuild online vs offline vs index coalesce vs index shrik space索引IndexRebuild
- Index Online RebuildIndexRebuild
- create index online 與rebuild index onlineIndexRebuild
- create index online 與rebuild index onlineIndexRebuild
- alter index rebuild 與 rebuild onlineIndexRebuild
- rebuild index online和create index online及沒有online的區別RebuildIndex
- 【羅玄】從鎖的角度看rebuild index online和rebuild indexRebuildIndex
- 聊聊索引Index Rebuild和Rebuild Online(下)索引IndexRebuild
- 聊聊索引Index Rebuild和Rebuild Online(上)索引IndexRebuild
- alter index ind1 rebuild 和alter index ind1 rebuild onlineIndexRebuild
- alter index rebuild和rebuild online的區別IndexRebuild
- rebuild indexRebuildIndex
- index rebuildIndexRebuild
- KEEP INDEX | DROP INDEXIndex
- alter index rebuild online引發的血案IndexRebuild
- 測試index online rebuild故障記錄IndexRebuild
- alter index ... rebuild online的機制(zt)IndexRebuild
- rebuild index 排序RebuildIndex排序
- sybase rebuild indexRebuildIndex
- rebuild index online的鎖機制淺析RebuildIndex
- Online rebuild index遭遇ORA-08104RebuildIndex
- alter index rebuild與index_statsIndexRebuild
- Index rebuild --case 1IndexRebuild
- create index online 和create index 不同及注意點Index
- rebuild index 和 recreate index (重新建立index) 的區別RebuildIndex
- 關於move table和rebuild index批量操作的記錄RebuildIndex
- ORACLE中index的rebuildOracleIndexRebuild
- 建立index 使用Online導致的問題Index
- create index , rebuild index troubleshooting 索引故障解決IndexRebuild索引
- SQL Server2000 刪除大量資料後需要重建index或rebuild 麼 ?SQLServerIndexRebuild
- oracle10g_alter index rebuild_online_重構索引OracleIndexRebuild索引
- (轉)Index Rebuild Online 過程(9i)完整版IndexRebuild
- index問題Index
- create index/create index online區別Index
- Oracle alter index rebuild 說明OracleIndexRebuild
- "Alter index rebuild online parallel n"會修改索引的degree屬性IndexRebuildParallel索引