DB2刪除數(shù)據(jù)時(shí)的小技巧
DB2刪除數(shù)據(jù)是我們最常用的操作之一,下面就教您一個(gè)DB2刪除數(shù)據(jù)時(shí)的小技巧,如果您對DB2刪除數(shù)據(jù)方面感興趣的話,不妨一看。
Delete
當(dāng)用DELETE TABLE命令刪除整個(gè)表中數(shù)據(jù)時(shí),該操作會逐條刪除表中記錄,并記入活動的交易日志。當(dāng)表中數(shù)據(jù)量很大時(shí),如果活動的交易日志不夠大,就會遇到交易日志已滿的錯(cuò)誤,并回滾日志。
即使活動的交易日志足夠大,刪除數(shù)據(jù)量很大的表的操作也會占用很多時(shí)間。用以空文件為數(shù)據(jù)文件導(dǎo)入(IMPORT)并替換(REPLACE)表的辦法可以解決這個(gè)問題。例如
IMPORT FROM /dev/null OF DEL REPLACE INTO 目標(biāo)表名
這樣交易日志只會記錄下該條命令,并立即釋放所占的空間,而不會像刪除命令一樣逐條掃描記錄,這就類似于DROP掉該表再創(chuàng)建一個(gè)完全相同只是沒有數(shù)據(jù)的表一樣。
對于屬于DMS表空間的表來說,刪除命令逐條掃描記錄,所占的記錄空間仍標(biāo)記為該表所用,而不立即釋放空間,需要用REORG命令才可以釋放剩余空間。用 LIST TABLESPACE SHOW DETAIL 可以對比兩條命令執(zhí)行后表空間中的剩余空間的大小。
用LOAD命令加REPLACE參數(shù)可以達(dá)到類似IMPORT命令加REPLACE的效果,但是由于LOAD本身不記日志,所以對于可恢復(fù)的數(shù)據(jù)庫,LOAD完成后建議馬上做一下聯(lián)機(jī)備份的,相比之下,IMPORT命令加REPLACE操作上比較簡單一些。
【編輯推薦】