index rebuild

guocun09發表於2011-12-03

1. 為什麼要rebuild index?
在表上頻繁的updatedelete的操作會導致索引出現很多空間碎片,從而使得訪問該索引的SQL查詢效率下降,透過rebuild index,可以回縮空間碎片,並提供查詢效率。

2.rebuild index時如何提高速度?
1>使用nologging,減少redo的產生
2>使用parallel

3>盡量在不對表進行dml操作時,進行rebuild,這樣就可以不使用online選項
4>使剩餘的index表空間要大於索引的空間
5>最大temp表空間,建立索引的時候會用到temp段

3.rebuild不加online和加online區別?
1>加online
rebulid online執行過程中可以對表進行DML動作,但在rebuild online之前要注意有沒有其它session對table的鎖,如果有鎖rebuild會hang住直到鎖備釋放為止,這麼任何session都不能對table進行DML操作了,而且rebuild的時間會較長
可檢視案例:http://www.itpub.net/forum.php?mod=viewthread&tid=1445427&extra=&highlight=&page=1
2>不加online(其實就是offline)
rebuild執行過程中不能對表進行DML操作,在rebulid前即便其它session對table有鎖也可以rebulid完成,且執行速度較快

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-712662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章