2017年(38)
分类: Oracle
2017-12-07 13:48:13
1. 为什么要rebuild index?
在表上频繁的update和delete的操作会导致索引出现很多空间碎片,从而使得访问该索引的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完成,且執行速度較快