科研院所db2 9.7

DB2 如何快速删除表中的部分数据 每次大约100万行

如题,主要是数据量较大,决定每天将数据从一张表中,转存到另一张表中,每次转存大约100万行,做法是将原来表中的部分数据load到新表中,然后将原来表中的那些数据删除掉,有什么比较快的删除数据的方法,不需要记日志。
参与17

16同行回答

ydliujiangydliujiang数据库管理员IBM
张老师的建议做分区表然后detach最高效了。要是删除数据不容易和分区条件匹配,就用not logged initially不记日志。同时对删除的筛选条件保证使用索引定位数据显示全部
张老师的建议做分区表然后detach最高效了。要是删除数据不容易和分区条件匹配,就用not logged initially不记日志。同时对删除的筛选条件保证使用索引定位数据收起
金融其它 · 2014-05-29
浏览601
sunchaosailorsunchaosailor软件开发工程师SIA
回复 5# wjf870128    您好!alter table xxx activate not logged initially这句话,是要写在存储过程中吗?紧接着写delete语句?我写在存储过程中,报错,QL0104N  An unexpected token "alter" was found following "".  Expected tokens may incl...显示全部
回复 5# wjf870128


   您好!alter table xxx activate not logged initially
这句话,是要写在存储过程中吗?紧接着写delete语句?
我写在存储过程中,报错,
QL0104N  An unexpected token "alter" was found following "
".  Expected tokens may include:  "TRUNCATE".

我是菜鸟。。。恳请大侠指教啊。收起
科研院所 · 2014-05-29
浏览629
wjf870128wjf870128数据库管理员普惠金融
alter table xxx activate not logged initially可以在一个事务中不记录日志,然后进行删除数据。当然如果分区明确的话,做成分区表进行数据的转移是最好的。显示全部
alter table xxx activate not logged initially可以在一个事务中不记录日志,然后进行删除数据。
当然如果分区明确的话,做成分区表进行数据的转移是最好的。收起
互联网服务 · 2014-05-29
浏览641
sunchaosailorsunchaosailor软件开发工程师SIA
回复 2# ydliujiang    我希望仅删除表中的一部分,不是把整个表全部删除。truncate不能按条件删除啊!显示全部
回复 2# ydliujiang


   我希望仅删除表中的一部分,不是把整个表全部删除。truncate不能按条件删除啊!收起
科研院所 · 2014-05-29
浏览601
张东焕张东焕技术总监IBM官方授权讲师
最好是做表分区,将需要转移的部分做成一个分区,通过分区的转出。达到变速分离。显示全部
最好是做表分区,将需要转移的部分做成一个分区,通过分区的转出。达到变速分离。收起
IT咨询服务 · 2014-05-29
浏览555
ydliujiangydliujiang数据库管理员IBM
A表到B表可以使用load from cusor;清除B表的话你是V9.7可以用truncate显示全部
A表到B表可以使用load from cusor;清除B表的话你是V9.7可以用truncate收起
金融其它 · 2014-05-29
浏览710

提问者

相关问题

问题状态

  • 发布时间:2014-05-29
  • 关注会员:1 人
  • 问题浏览:12216
  • 最近回答:2014-06-09
  • X社区推广