close
文章出處
前言:
如果碎片程度小于30%,建議使用重組而不是重建。因為重組不會鎖住數據頁或者數據表,并且降低CPU的資源。
總得來說,重組會清空當前的B-TREE,特別是索引的葉子節點,重組數據頁和消除碎片。和重建不同,重組不會添加任何新數據頁。
準備工作:
為了了解是否有必要重組索引,需要首先查看碎片程度,如果在10%以下,那一般沒必要做什么維護,如果在10%~30%,就建議進行重組。
步驟:
1、 以下各種重組索引的方法:
- --不指定參數重組索引:
- ALTER INDEX [idx_refno] ON [ordDemo]
- REORGANIZE
- GO
- --重組表中所有索引:
- ALTER INDEX ALL ON [ordDemo]
- REORGANIZE
- GO
- --使用DBCC INDEXDEFRAG重建表上所有索引:
- DBCC INDEXDEFRAG('AdventureWorks','ordDemo')
- GO
- --使用DBCC INDEXDEFRAG重組表上一個索引:
- DBCC INDEXDEFRAG('AdventureWorks','ordDemo','idx_refno')
- GO
2、 DBCC INDEXDEFRAG命令同樣是后續不建議繼續使用的命令。
分析:
索引重組,也可以稱為碎片重組,對單獨索引的操作將使用單獨的線程。不可以并行操作。所以同一時刻只有一個索引被操作。
重組并不產生新頁,但是會壓縮頁,如果頁面已經為空,將會移除這個頁,所以填充因子選項是不需要的。同時,因為它不會鎖住對象,所以總是聯機處理。
重組同樣需要sysadmin、db_onwer、db_ddladmin角色。
![]() |
不含病毒。www.avast.com |
全站熱搜