快速清空DB2表記錄
alter table tabname activate not logged initially with empty table
如果要清空部分表內容,下面兩句要一起執行
alter table tabname activate not logged initially
delete from tabname where id >1000
truncate 命令在DB2裡面沒有,V9.7據說有.
===================================================
db2 import from /dev/null of del replace into tabname
======================================================
在DB2資料庫中,如果想快速清空一張大表(類似在 ORACLE 中使用 TRUNCATE TABLE 快速清空一張大表),有兩種方法:
1. 使用 “ ALTER TABLE 表名 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE ” 命令。
2. 使用空檔案為資料檔案匯入並替換表中資料。
* 在 windows 平臺,可以先使用 EXPORT 匯出一個空檔案,再使用 IMPORT 命令從空檔案中匯入並替換該表中資料,比如:
export to test.ixf of ixf messages log.txt select * from test where 1=2
import from c:\ test.ixf of ixf messages log1.txt replace into test
* 在 UNIX 平臺,除了使用 A 方法以外,還可以使用從空(NULL)中匯入並替換該表資料,比如:
import from /home/null of del replace into test
如果使用“ DELETE TABLE ”命令刪除整個大表中的資料,由於這個命令採用逐條刪除,並把該操作記入活動的交易日誌,將會耗費大量的活動日誌空間,有可能造成資料庫交易日誌已滿錯 誤,另外,這樣刪除大表資料耗費的時間也很長。對於屬於 DMS 表空間的表來說,刪除命令逐條掃描記錄,所佔的記錄空間仍標記為該表所用,而不立即釋放空間,需要用 REORG 命令才可以釋放剩餘空間。
使用以上兩種DB2錶快速清空方法進行快速清空一張大表,將使 DB2 交易日誌只記錄該條命令,並立即釋放所佔用的空間,而不會像刪除命令一樣逐條掃描記錄,從而節省大量的資料庫交易日誌和處理時間。用 LOAD 命令加 REPLACE 引數可以達到類似 IMPORT 命令加 REPLACE 的效果,但是由於 LOAD 本身不記日誌,所以對於可恢復的資料庫,LOAD 完成後建議馬上做一下聯機備份的,相比之下,IMPORT 命令加 REPLACE 操作上比較簡單一些。
===================================================
db2 import from /dev/null of del replace into tabname
======================================================
在DB2資料庫中,如果想快速清空一張大表(類似在 ORACLE 中使用 TRUNCATE TABLE 快速清空一張大表),有兩種方法:
1. 使用 “ ALTER TABLE 表名 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE ” 命令。
2. 使用空檔案為資料檔案匯入並替換表中資料。
* 在 windows 平臺,可以先使用 EXPORT 匯出一個空檔案,再使用 IMPORT 命令從空檔案中匯入並替換該表中資料,比如:
export to test.ixf of ixf messages log.txt select * from test where 1=2
import from c:\ test.ixf of ixf messages log1.txt replace into test
* 在 UNIX 平臺,除了使用 A 方法以外,還可以使用從空(NULL)中匯入並替換該表資料,比如:
import from /home/null of del replace into test
如果使用“ DELETE TABLE ”命令刪除整個大表中的資料,由於這個命令採用逐條刪除,並把該操作記入活動的交易日誌,將會耗費大量的活動日誌空間,有可能造成資料庫交易日誌已滿錯 誤,另外,這樣刪除大表資料耗費的時間也很長。對於屬於 DMS 表空間的表來說,刪除命令逐條掃描記錄,所佔的記錄空間仍標記為該表所用,而不立即釋放空間,需要用 REORG 命令才可以釋放剩餘空間。
使用以上兩種DB2錶快速清空方法進行快速清空一張大表,將使 DB2 交易日誌只記錄該條命令,並立即釋放所佔用的空間,而不會像刪除命令一樣逐條掃描記錄,從而節省大量的資料庫交易日誌和處理時間。用 LOAD 命令加 REPLACE 引數可以達到類似 IMPORT 命令加 REPLACE 的效果,但是由於 LOAD 本身不記日誌,所以對於可恢復的資料庫,LOAD 完成後建議馬上做一下聯機備份的,相比之下,IMPORT 命令加 REPLACE 操作上比較簡單一些。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-683384/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db2清空表釋放空間的快速方法DB2
- db2 清空表導致表出現UnavailableDB2AI
- Sql Server強制清空所有資料表中的記錄SQLServer
- oracle快速向表中插入記錄方法Oracle
- db2不記錄日誌插入記錄DB2
- git如何清空所有的commit記錄GitMIT
- 高效快速刪除Oracle表中重複記錄Oracle
- DB2 刪除重複記錄DB2
- 快速清空埠上的配置
- db2刪除重複的記錄DB2
- DB2學習筆記 - 表空間DB2筆記
- JavaScript表單提交不能清空type為hidden的input快速解決方案JavaScript
- win10 播放器清空記錄方法 win10 影片播放器播放記錄怎麼清除Win10播放器
- 查詢鎖表記錄
- pl/sql記錄表(一)SQL
- 隨機取表記錄隨機
- commit時表內容清空MIT
- db2中刪除重複記錄的問題DB2
- win10 播放器清空記錄方法 win10 視訊播放器播放記錄怎麼清除Win10播放器
- 清空Oracle記憶體區Oracle記憶體
- 清空form表單例項程式碼ORM單例
- db2表空間DB2
- db2表掛起DB2
- PLSQL Language Referenc-PL/SQL集合和記錄-記錄比較-將記錄插入到表中SQL
- 快速清空C#WINFORM窗體控制元件值C#ORM控制元件
- mysql快速新增百萬條記錄的語句MySql
- oracle-快速刪除重複的記錄Oracle
- DB2 exists子句會過濾掉所用的本條記錄DB2
- mysql怎麼清空表中的資料MySql
- jQuery如何清空表單元素的內容jQuery
- 記錄分庫分表的文章
- oracle計算表的記錄數Oracle
- PostgreSQL分割槽表、繼承表記錄去重方法SQL繼承
- db2大表統計DB2
- DB2 批量刪除表DB2
- DB2表空間增加DB2
- Webview清空歷史紀錄的正確姿勢WebView
- Bootstrap select2 ,table, 清空表單formbootORM