alter index rebuild 與 rebuild online

liuhaimiao發表於2014-08-21

兩者重建索引時的掃描方式不同,rebuild用的是“INDEX FAST FULL SCAN”,rebuild online用的是“TABLE ACCESS FULL”; 即rebuild index是掃描索引塊,而rebuild index online是掃描全表的資料塊.
SQL> explain plan for alter index ind_test_id rebuild; SQL> select * from table(dbms_xplan.display);
SQL> explain plan for alter index ind_test_id rebuild online;
SQL> select * from table(dbms_xplan.display); 
rebuild index online在執行期間不會阻塞DML操作,但在開始和結束階段,需要請求模式為4的TM鎖。因此
,如果在rebuild index online開始前或結束時,有其它長時間的事物在執行,很有可能就造成大量的鎖等
待。也就是說在執行前仍會產生阻塞, 應該避免排他鎖.
而rebuild index在執行期間會阻塞DML操作, 但速度較快.

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

相關文章