close
文章出處

前言:

如果碎片程度小于30%,建議使用重組而不是重建。因為重組不會鎖住數據頁或者數據表,并且降低CPU的資源。

總得來說,重組會清空當前的B-TREE,特別是索引的葉子節點,重組數據頁和消除碎片。和重建不同,重組不會添加任何新數據頁。

 

準備工作:

為了了解是否有必要重組索引,需要首先查看碎片程度,如果在10%以下,那一般沒必要做什么維護,如果在10%~30%,就建議進行重組。

 

 

步驟:

1、 以下各種重組索引的方法: 

 
  1. --不指定參數重組索引:  
  2. ALTER INDEX [idx_refno] ON [ordDemo]  
  3. REORGANIZE  
  4. GO  
  5.   
  6. --重組表中所有索引:  
  7. ALTER INDEX ALL ON [ordDemo]  
  8. REORGANIZE  
  9. GO  
  10.   
  11. --使用DBCC INDEXDEFRAG重建表上所有索引:  
  12. DBCC INDEXDEFRAG('AdventureWorks','ordDemo')  
  13. GO  
  14.   
  15. --使用DBCC INDEXDEFRAG重組表上一個索引:  
  16. DBCC INDEXDEFRAG('AdventureWorks','ordDemo','idx_refno')  
  17. GO  




 

 

2、 DBCC INDEXDEFRAG命令同樣是后續不建議繼續使用的命令。 

 

分析:

索引重組,也可以稱為碎片重組,對單獨索引的操作將使用單獨的線程。不可以并行操作。所以同一時刻只有一個索引被操作。

重組并不產生新頁,但是會壓縮頁,如果頁面已經為空,將會移除這個頁,所以填充因子選項是不需要的。同時,因為它不會鎖住對象,所以總是聯機處理。

重組同樣需要sysadmin、db_onwer、db_ddladmin角色。


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()