我有一张表,大概有50万行数据,我想删除所有的行。
如果我直接使用delete from tbl
,事务日志就会被填满。但是我不关心这些事务,也不需要在任何情况下回滚操作。我可以分批次删除数据,但是是否有更好的方法呢?
如何高效地从DB2表中删除所有行? 我能否为此命令禁用事务,或者有特殊的命令来实现此操作(例如MySQL中的truncate 命令)?
在删除记录后,我将重新填充类似数量的新数据。
我有一张表,大概有50万行数据,我想删除所有的行。
如果我直接使用delete from tbl
,事务日志就会被填满。但是我不关心这些事务,也不需要在任何情况下回滚操作。我可以分批次删除数据,但是是否有更好的方法呢?
如何高效地从DB2表中删除所有行? 我能否为此命令禁用事务,或者有特殊的命令来实现此操作(例如MySQL中的truncate 命令)?
在删除记录后,我将重新填充类似数量的新数据。
看起来这个命令在较新版本的DB2中可用。
TRUNCATE TABLE someschema.sometable IMMEDIATE
TRUNCATE TABLE 表名;
alter table schema.table_name activate not logged initially with empty table
根据我所读到的,这将删除表格内容而不进行任何日志记录,这将减轻服务器的I/O负担。