您好,登錄后才能下訂單哦!
--1、創(chuàng)建測(cè)試表
create table cux.cux_test_data as
select * from GL_JE_HEADERS;
--2、查看數(shù)據(jù)條數(shù)
select count(1) from cux.cux_test_data;
--3、查看區(qū)塊大小
SELECT segment_name
,extents
,blocks
,initial_extent
FROM dba_segments
WHERE segment_name = 'CUX_TEST_DATA';
--4、刪除表,采用truncate方式
truncate table cux.cux_test_data;
--查看數(shù)據(jù)塊大小
SELECT segment_name
,extents
,blocks
,initial_extent
FROM dba_segments
WHERE segment_name = 'CUX_TEST_DATA';
由此可見(jiàn)truncate會(huì)清除表所占數(shù)據(jù)塊的大??;
--5、刪除表,采用delete方式
首先對(duì)測(cè)試表進(jìn)行重新插入操作,查得數(shù)據(jù)塊大小如下:
執(zhí)行刪除操作:
delete from cux.cux_test_data;
再次查詢表所占數(shù)據(jù)塊大小如下:
可看出,所占數(shù)據(jù)塊并沒(méi)有變動(dòng);
--當(dāng)delete完數(shù)據(jù)之后,再往測(cè)試表中插入100萬(wàn)條數(shù)據(jù),再次查詢數(shù)據(jù)塊大小如下:
發(fā)現(xiàn)跟刪除前一樣,也就是說(shuō)當(dāng)delete相關(guān)的數(shù)據(jù)之后,再插入數(shù)據(jù)如果比刪之前的數(shù)據(jù)小,則表空間分布不會(huì)變;當(dāng)插入的數(shù)據(jù)比刪之前多時(shí),才會(huì)增加數(shù)據(jù)塊大?。?/p>
--6、采用SHRINK和MOVE方式去收縮表空間
ALTER TABLE cux.cux_test_data MOVE; --降低水位線,釋放表空間
注意:alter table move命令可以釋放空間,該操作期間會(huì)鎖表;
而且會(huì)導(dǎo)致索引失效,如果該表有索引,還需要進(jìn)行索引重建操作,重建索引腳本如下:
ALTER INDEX XXX REBUILD ONLINE; --重建索引
alter table cux.cux_test_data enable row movement; --啟用行遷移
alter table cux.cux_test_data shrink;--降低水位線
上述兩步種方式收縮完之后,表空間已釋放
結(jié)論:
1、TRUNCATE刪除表會(huì)直接釋放表空間;
2、DELETE刪除表不會(huì)釋放表空間,若要釋放,可采用SHRINK和MOVE方式進(jìn)行收縮。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。