打印

db2中快速清空表

本主题被作者加入到个人文集中

db2中快速清空表

在测试跟应用中经常会需要清空某些数据表,但是db2内部机制原因,一次删除条数有限制,并且速度也不乐观

如果只是简单清空表的话,用下边这个吧

ALTER TABLE SCHEMA.TABLENAME ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;

TOP

PostgreSQL可以么

TOP

不知道,没试过,手里有环境的可以试一下
信为人之本

TOP

很好很强大。。。。。。。。。

TOP

这种方法没有试过,不过我现在用的是下面这个SQL,效果一样,不知道那一种方法效率更高。
IMPORT FROM /DEV/NULL OF DEL REPLACE INTO ${SCHEMA}.${TABNAME}
用于数据导入出错后,为再次数据导入清空表时使用。
“上小学的时候,我曾经以为这个世界上属鸡的人是最多的,因为我们班上几乎都是属鸡的。”
“逃げない!諦めない!偶に笑う。”
.。.:*・゚゚・美味しい店*:..。o☆゚

TOP

嗯,导入空数据也很快的说,我原先就这么着用来着,后来客户给了一楼那个语句,我就用那个了,至于效率我就不知道了,应该道理差不多。

TOP

哈,我去搞个测试,一会儿回来报告。。。
“上小学的时候,我曾经以为这个世界上属鸡的人是最多的,因为我们班上几乎都是属鸡的。”
“逃げない!諦めない!偶に笑う。”
.。.:*・゚゚・美味しい店*:..。o☆゚

TOP

ややや、驚き結果が出ましたよ!
■テストSQL文:
①IMPORT FROM /DEV/NULL OF DEL REPLACE INTO ${SCHEMA}.${TABNAME}
②ALTER TABLE ${SCHEMA}.${TABNAME} ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
■テストテーブル数: 254個
■実行ログ:
 ①の場合:
   データクリア開始時刻 ==> [08/05/28 16:25:03]
   データクリア終了時刻 ==> [08/05/28 16:29:34]
   合計時間:4分31秒
 ②の場合:
   データクリア開始時刻 ==> [08/05/28 16:42:05]
   データクリア終了時刻 ==> [08/05/28 16:43:23]
   合計時間:1分18秒
■結論:
 ①より②の方が効率的です。
“上小学的时候,我曾经以为这个世界上属鸡的人是最多的,因为我们班上几乎都是属鸡的。”
“逃げない!諦めない!偶に笑う。”
.。.:*・゚゚・美味しい店*:..。o☆゚

TOP

能差这么多?是不是因为①中的写了系统日志的原因啊

TOP

两个batch文件内容除了执行的SQL文语句不一样以外,其他内容都是相同的。
包括出力log的处理都是一样的。所以可以肯定的说②的方法确实更迅速一些。
“上小学的时候,我曾经以为这个世界上属鸡的人是最多的,因为我们班上几乎都是属鸡的。”
“逃げない!諦めない!偶に笑う。”
.。.:*・゚゚・美味しい店*:..。o☆゚

TOP