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