溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

發(fā)布時(shí)間:2020-08-05 02:58:02 來(lái)源:ITPUB博客 閱讀:600 作者:smilesu 欄目:關(guān)系型數(shù)據(jù)庫(kù)

--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;

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

--3、查看區(qū)塊大小

SELECT segment_name

      ,extents

      ,blocks

      ,initial_extent  

FROM   dba_segments

WHERE  segment_name = 'CUX_TEST_DATA';

  ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

--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';

  ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

由此可見(jiàn)truncate會(huì)清除表所占數(shù)據(jù)塊的大??;

--5、刪除表,采用delete方式

  首先對(duì)測(cè)試表進(jìn)行重新插入操作,查得數(shù)據(jù)塊大小如下:

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

執(zhí)行刪除操作:

delete from cux.cux_test_data;

再次查詢表所占數(shù)據(jù)塊大小如下:

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

可看出,所占數(shù)據(jù)塊并沒(méi)有變動(dòng);

--當(dāng)delete完數(shù)據(jù)之后,再往測(cè)試表中插入100萬(wàn)條數(shù)據(jù),再次查詢數(shù)據(jù)塊大小如下:

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

發(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;--降低水位線

上述兩步種方式收縮完之后,表空間已釋放

ORACLE數(shù)據(jù)庫(kù)之大數(shù)據(jù)量TRUNCATE和DELETE操作對(duì)表空間的影響

結(jié)論:

1、TRUNCATE刪除表會(huì)直接釋放表空間;

2、DELETE刪除表不會(huì)釋放表空間,若要釋放,可采用SHRINK和MOVE方式進(jìn)行收縮。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI