快速清空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 清空表導致表出現UnavailableDB2AI
- linux 清空歷史執行記錄Linux
- git如何清空所有的commit記錄GitMIT
- 清空form表單ORM
- git-清空歷史提交記錄(保留原倉庫)Git
- db2大表統計DB2
- win10 播放器清空記錄方法 win10 影片播放器播放記錄怎麼清除Win10播放器
- win10 播放器清空記錄方法 win10 視訊播放器播放記錄怎麼清除Win10播放器
- db2 建立bufferpool,表空間DB2
- DB2目錄結構簡介DB2
- mysql怎麼清空表中的資料MySql
- Bootstrap select2 ,table, 清空表單formbootORM
- MAKT 物料組 變更記錄表
- 記錄分庫分表的文章
- mysql快速新增百萬條記錄的語句MySql
- PostgreSQL分割槽表、繼承表記錄去重方法SQL繼承
- db2 sql批量插入一張表插入另一張表DB2SQL
- LightDB不記錄WAL日誌的表
- 檢測表中行記錄是否已存在
- 一、快速構建Spring Boot專案【springboot記錄】Spring Boot
- DB2建立資料庫,建立表空間DB2資料庫
- Dynamics CRM 在表單上顯示更改歷史記錄(稽核歷史記錄)
- DB2 offline reorg的一點筆記DB2筆記
- Linux搗鼓記錄:快速搭建alist+aria2+qbittorrentLinux
- ACCESS 統計報表有多少行記錄
- mysql支援跨表delete刪除多表記錄MySqldelete
- PbootCMS使用者提交表單和調取表單記錄boot
- 一個簡單快速的OCR表單識別錄入工具
- mysql 查詢記錄數大於一千萬的表MySql
- postgresql 9.6 分割槽表測試方案與記錄SQL
- MySQL 關聯表取最新一條記錄方案MySql
- MySQL單表最大記錄數不能超過多少?MySql
- 一個表單同時提交多條記錄
- win10播放器記錄怎麼刪除_win10清空影片播放痕跡操作方法Win10播放器
- 記錄一次docker快速啟動elasticsearch單機服務DockerElasticsearch
- git清空修改Git
- 清空樣式
- 使用MyISAM表和InnoDB的一些記錄GD
- MYSQL資料庫表記錄刪除解決方案MySql資料庫