Oracle 高水位问题
生活随笔
收集整理的這篇文章主要介紹了
Oracle 高水位问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- Oracle 對(duì)數(shù)據(jù)段的管理有一個(gè)高水位(HWM, High Water Mark)的概念。高水位是數(shù)據(jù)段中使用過(guò)和未使用過(guò)的數(shù)據(jù)塊的分界線。高水位以下的數(shù)據(jù)塊是曾使用過(guò)的,以上的是從未被使用或初始化過(guò)的。
- 當(dāng) Oracle 進(jìn)行全表掃描(FTS, Full table scan)的操作時(shí),它會(huì)讀高水位下的所有數(shù)據(jù)塊。如果高水位下還有很多空閑空間(碎片),讀取這些空閑數(shù)據(jù)塊會(huì)降低操作的性能。
- 當(dāng)針對(duì)一個(gè)表的刪除操作很多時(shí),表會(huì)產(chǎn)生大量碎片。刪除操作釋放的空間不會(huì)被插入操作立即重用,甚至永遠(yuǎn)也不會(huì)被重用,這被稱之為高水位問(wèn)題;
如何檢查表是否有高水位問(wèn)題?
高水位問(wèn)題會(huì)產(chǎn)生什么不好的影響?
- 查詢響應(yīng)時(shí)間(尤其是全表掃描)變慢
- 產(chǎn)生大量行遷移
- 浪費(fèi)空間
如何解決高水位問(wèn)題?
10g之前有兩種方式
10g之后
提供 shrink 命令,需要表空間是基于自動(dòng)段管理的,分兩步走:
- 第一步:整理表,不影響DML操作
- 第二步:重置高水位,此時(shí)不能有DML操作
也可以一步到位:
alter table TABLE_NAME shrink space;shrink 的優(yōu)勢(shì):不需要重建索引。可以在線操作。
注意 :segment shrink執(zhí)行的兩個(gè)階段:
- 注意:shrink space語(yǔ)句兩個(gè)階段都執(zhí)行。shrink space compact只執(zhí)行第一個(gè)階段。如果系統(tǒng)業(yè)務(wù)比較繁忙,可以先執(zhí)行shrink space compact重組數(shù)據(jù),然后在業(yè)務(wù)不忙的時(shí)候再執(zhí)行shrink space降低HWM釋放空閑數(shù)據(jù)塊。
轉(zhuǎn)載于:https://www.cnblogs.com/fubinhnust/p/9925731.html
總結(jié)
以上是生活随笔為你收集整理的Oracle 高水位问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: springboot+mybatis+t
- 下一篇: 竞价推广账户创意撰写的技巧之核心思路