怎么使用altertablemove與shrinkspace

本篇內(nèi)容主要講解“怎么使用alter table move與shrink space”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么使用alter table move與shrink space”吧!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供歙縣網(wǎng)站建設(shè)、歙縣做網(wǎng)站、歙縣網(wǎng)站設(shè)計、歙縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、歙縣企業(yè)網(wǎng)站模板建站服務(wù),10多年歙縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

都知道alter table move 或shrink space可以收縮段,用來消除部分行遷移,消除空間碎片,使數(shù)據(jù)更緊密,但move跟shrink space還是有區(qū)別的。


Move會移動高水位,但不會釋放申請的空間,是在高水位以下(below HWM)的操作。

而shrink space 同樣會移動高水位,但也會釋放申請的空間,是在高水位上下(below and above HWM)都有的操作。

Move解決問題:
a. 我們可以使用move將一個table從當(dāng)前的tablespace上移動到另一個tablespace上:
alter table t move tablespace tablespace_name;
b. 我們還可以用move來改變table已有的block的存儲參數(shù),如:
alter table t move storage (initial 30k next 50k);
c.另外,move操作也可以用來解決table中的行遷移的問題。

使用move的一些注意事項:
a. table上的index需要rebuild:
在前面我們討論過,move操作后,數(shù)據(jù)的rowid發(fā)生了改變,我們知道,index是通過rowid來fetch數(shù)據(jù)行的,所以,table上的index是必須要rebuild的。
alter index index_name rebuild online;

b.move時對table的鎖定
當(dāng)我們對table進行move操作時,查詢v$locked_objects視圖可以發(fā)現(xiàn),table上加了exclusive lock

c.關(guān)于move時空間使用的問題:
當(dāng)我們使用alter table move來降低table的HWM時,有一點是需要注意的,這時,當(dāng)前的tablespace中需要有1倍于table的空閑空間以供使用

Shrink space語法:
alter table
shrink space [ | compact | cascade ];
alter table
shrink space compcat;
收縮表,但會保持 high water mark;
alter table
shrink space;
收縮表,降低 high water mark;
alter table
shrink space cascade;
收縮表,降低 high water mark,并且相關(guān)索引也要收縮

用shrink有兩個前提條件:
1、表必須啟用row movement,如:
alter table nonsrt.TAB_EZG_BIZ_UNCONTRACTED enable row movement;
alter table nonsrt.TAB_EZG_BIZ_UNCONTRACTED shrink space;
2、表段所在表空間的段空間管理(segment space management)必須為auto。

segment shrink分為兩個階段:
1、數(shù)據(jù)重組(compact):通過一系列insert、delete操作,將數(shù)據(jù)盡量排列在段的前面。在這個過程中需要在表上加RX鎖,即只在需要移動的行上加鎖。由于涉及到rowid的改變,需要enable row movement.同時要disable基于rowid的trigger.這一過程對業(yè)務(wù)影響比較小。
2、HWM調(diào)整:第二階段是調(diào)整HWM位置,釋放空閑數(shù)據(jù)塊。此過程需要在表上加X鎖,會造成表上的所有DML語句阻塞。在業(yè)務(wù)特別繁忙的系統(tǒng)上可能造成比較大的影響。
注意:shrink space語句兩個階段都執(zhí)行。
shrink space compact只執(zhí)行第一個階段。
如果系統(tǒng)業(yè)務(wù)比較繁忙,可以先執(zhí)行shrink space compact重組數(shù)據(jù),然后在業(yè)務(wù)不忙的時候再執(zhí)行shrink space降低HWM釋放空閑數(shù)據(jù)塊。

到此,相信大家對“怎么使用alter table move與shrink space”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:怎么使用altertablemove與shrinkspace
網(wǎng)站路徑:http://bm7419.com/article22/goeojc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、外貿(mào)建站、品牌網(wǎng)站設(shè)計、定制網(wǎng)站App設(shè)計、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營