代码之家  ›  专栏  ›  技术社区  ›  Juha Syrjälä

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

  •  10
  • Juha Syrjälä  · 技术社区  · 15 年前

    我有一个表,大约有50万行,我想删除所有行。

    如果我做简单 delete from tbl ,事务日志将填充。我不关心事务这个案例,我不想在任何情况下回滚。我可以在许多事务中删除行,但是有更好的方法吗?

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

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

    2 回复  |  直到 15 年前
        1
  •  15
  •   Community CDub    8 年前

    似乎是服从命令 works 在DB2的新版本中。

    TRUNCATE TABLE someschema.sometable IMMEDIATE  
    
        2
  •  7
  •   Luka Milani    15 年前

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

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

    根据我所能阅读的内容,这将删除表内容,而不进行任何日志记录,这将使服务器的I/O更加容易。