alter table 表名 move和alter table 表名 shrink space都可以用來進行段收縮,降低高水位HWM,
創(chuàng)新互聯(lián)公司專注于東莞網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供東莞營銷型網(wǎng)站建設,東莞網(wǎng)站制作、東莞網(wǎng)頁設計、東莞網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務,打造東莞網(wǎng)絡公司原創(chuàng)品牌,更為您提供東莞網(wǎng)站排名全網(wǎng)營銷落地服務。
也都可以用來消除行鏈接(Row Chaining)和行遷移(Row Migration),估計效果不明顯,看你的數(shù)據(jù)庫用途是干什么的(如果是數(shù)據(jù)倉庫肯定是不明顯的)。
刪除數(shù)據(jù)不能縮小表空間,只是可再利用的多了.
要實際縮小,讓操作系統(tǒng)可以利用,需要先把表move tablespace
也可以在原來的tablespace上move一遍,再縮小tablespace就可以了.
例如:
alter table your_table move tablespace yourtablespace;
用下面的看表空間使用情況:
SELECT F.TABLESPACE_NAME,
A.TOTAL,
U.USED,
F.FREE,
ROUND((U.USED / A.TOTAL) * 100) "% used",
ROUND((F.FREE / A.TOTAL) * 100) "% Free"
FROM (SELECT TABLESPACE_NAME,
SUM(BYTES / (1024 * 1024)) TOTAL
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES / (1024 * 1024))) USED
FROM DBA_EXTENTS
GROUP BY TABLESPACE_NAME) U,
(SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES / (1024 * 1024))) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME
AND A.TABLESPACE_NAME = U.TABLESPACE_NAME
然后再決定刪除/縮小那個表空間
縮小表空間大小注意如下幾點:
1、查清該表空間下的數(shù)據(jù)文件個數(shù),使用量;
2、為了保證數(shù)據(jù)庫的性能,表空間的使用量不要超過75%;
3、修改數(shù)據(jù)文件語法:ALTER DATABASE DATAFILE data_file_name RESIZE nnnnM;
如果是10g,那么修改參數(shù),sga_target,和sga_maxsize以及pga_xxxxx(具體的名字忘記了,自己show parameter pga查一下)
修改語句舉例:alter system set sga_target=xxxxx;scope=spfile;全部修改后重起數(shù)據(jù)庫。
如果是11g,那么是修改參數(shù)memory_target.修改參數(shù)一致。
如果是linux系統(tǒng),還要修改操作系統(tǒng)文件system文件(操作系統(tǒng)不同,該文件名稱也不同),其中有一個值,最好改一下,不過要停庫后修改。(不改也可以)