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

Juh*_*älä 10 sql db2 performance

我有了像五十万行的表,我想删除所有行.

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

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

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

Juh*_*älä 15

似乎以下命令适用于较新版本的DB2.

TRUNCATE TABLE someschema.sometable IMMEDIATE  
Run Code Online (Sandbox Code Playgroud)


Luk*_*ani 7

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

alter table schema.table_name activate not logged initially with empty table
Run Code Online (Sandbox Code Playgroud)

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