alter index rebuild 與 rebuild online

兩者重建索引時的掃描方式不同,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操作, 但速度較快.

SQL> select sid,type,id1,id2,lmode,request from v$lock where type in('DL','TM','TX');
發佈了4 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章