管理索引表:深入研究B树索引--重建,合并,删除(理论篇3)
重建索引
如果表中記錄頻繁地被刪除或插入,盡管表中的記錄總量保持不變,索引空間的使用量會不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會不斷增加,不論表中記錄數量是否增加,這是因為索引中無效空間會增加。 要回收那些曾被刪除記錄使用的空間,需要使用Alter index rebuild命令。
重建索引有兩種方法:一種是最簡單的,刪除原索引,然后重建;第二種是使用ALTER INDEX … REBUILD命令對索引進行重建。
需要重建判斷依據:
1.height >4
2.pct_used < 50%
3.del_lf_rows / lf_rows +0.001 > 0.03
合并索引
合并索引只是簡單地將B樹葉子節點中的存儲碎片合并到一起,并不會改變索引的物理結構。
合并索引和重建索引都可以清理索引數據塊中的碎片,但是又有區別:
合并索引:
1.不能將索引移動到其他表空間
2.代價比較低,不需要使用額外的存儲空間
3.只能在B樹的同一子樹種進行合并,不會改變樹的高度
4.可以快速釋放葉子節點中未使用的存儲空間
重建索引:
1.可以將索引移動到其他的表空間
2.代價比較高,需要使用額外的存儲空間
3.重建整個B樹,可以降低B樹的高度
4.可以快遞更改索引存儲參數,如果在重建中指出了ONLINE關鍵字,還可以再重建索引時使用索引。
刪除索引
1. 應用程序不再需要索引時,可將索引刪除。
2. 在大量加載數據前,先刪除索引,加載后再重新創建索引,這樣做的好處有:
?– 提高加載性能
?– 更有效地使用索引空間
3. 僅定期使用的索引無需不必要的維護,尤其在基于易失表時更是如此。這是 OLTP 系統中的通常情況,在該系統中,年末或季度末會生成特殊的查詢,以收集在總結會上使用的信息。
4. 當在某種類型的操作(如加載)期間出現例程失敗時,可能會將索引標記為INVALID。在這種情況下,需要刪除并重建索引。
5 索引已損壞。
不能刪除約束所需的索引,因此,必須先禁用或刪除相關的約束。
轉載于:https://www.cnblogs.com/polestar/archive/2012/04/27/2473608.html
總結
以上是生活随笔為你收集整理的管理索引表:深入研究B树索引--重建,合并,删除(理论篇3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 述字开头的四字成语有哪些?
- 下一篇: 是时候开始使用JavaScript严格模