如何有效地从DB2中的表中删除所有行

时间:2010-09-01 09:11:12

标签: sql performance db2

我有一个包含50万行的表,我想删除所有行。

如果我执行简单的delete from tbl,则事务日志会填满。我不关心交易这种情况,我不想在任何情况下回滚。我可以在许多交易中删除行,但有没有更好的方法呢?

如何有效地从DB2中的表中删除所有行?我可以以某种方式禁用此命令的事务,还是有特殊命令来执行此操作(如MySQL中的truncate)?

删除行后,我将使用相似数量的新数据重新填充数据库。

2 个答案:

答案 0 :(得分:15)

似乎在较新版本的DB2中遵循命令works

TRUNCATE TABLE someschema.sometable IMMEDIATE  

答案 1 :(得分:7)

要在DB2中截断表,只需写:

alter table schema.table_name activate not logged initially with empty table

从我能够阅读的内容来看,这将删除表内容而不进行任何类型的日志记录,这将更加容易在服务器的I / O上进行。