程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 教您如何在DB2刪除數據量大的表

教您如何在DB2刪除數據量大的表

編輯:DB2教程

DB2刪除數據時,經常會使用到DELETE TABLE命令,但是,DELETE TABLE命令仍然有一些局限性,在處理數據量很大的情況下,但是做得不夠完美。

當用DELETE TABLE命令在DB2刪除數據時,該操作會逐條刪除表中記錄,並記入活動的交易日志。當表中數據量很大時,如果活動的交易日志不夠大,就會遇到交易日志已滿的錯誤,並回滾日志。即使活動的交易日志足夠大,DB2刪除數據量很大的表的操作也會占用很多時間。用以空文件為數據文件導入IMPORT)並替換REPLACE)表的辦法可以解決這個問題。例如

IMPORT FROM /dev/null OF DEL REPLACE INTO 目標表名

這樣交易日志只會記錄下該條命令,並立即釋放所占的空間,而不會像DB2刪除數據命令一樣逐條掃描記錄,這就類似於DROP掉該表再創建一個完全相同只是沒有數據的表一樣。

對於屬於DMS表空間的表來說,DB2刪除數據命令逐條掃描記錄,所占的記錄空間仍標記為該表所用,而不立即釋放空間,需要用REORG命令才可以釋放剩余空間。用 LIST TABLESPACE SHOW DETAIL 可以對比兩條命令執行後表空間中的剩余空間的大小。

用LOAD命令加REPLACE參數可以達到類似IMPORT命令加REPLACE的效果,但是由於LOAD本身不記日志,所以對於可恢復的數據庫,LOAD完成後建議馬上做一下聯機備份的,相比之下,IMPORT命令加REPLACE操作上比較簡單一些。

在windows裡面,下面這句實現了。
import from c:\empty.txt of del replace into 目標表名
 

DB2索引設計准則

可視化 DB2 空間數據

有關DB2創建跨庫視圖的操作方案

DB2更新執行計劃的幾個好用的方法

在Linux9操作系統上手動安裝DB2

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved