科研院所 db2 9.7

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

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

16 同行回答

ydliujiang ydliujiang 数据库管理员 IBM
张老师的建议做分区表然后detach最高效了。要是删除数据不容易和分区条件匹配,就用not logged initially不记日志。同时对删除的筛选条件保证使用索引定位数据显示全部
张老师的建议做分区表然后detach最高效了。要是删除数据不容易和分区条件匹配,就用not logged initially不记日志。同时对删除的筛选条件保证使用索引定位数据 收起
金融其它 · 2014-05-29
浏览619
sunchaosailor sunchaosailor 软件开发工程师 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
浏览647
wjf870128 wjf870128 数据库管理员 普惠金融
alter table xxx activate not logged initially可以在一个事务中不记录日志,然后进行删除数据。当然如果分区明确的话,做成分区表进行数据的转移是最好的。显示全部
alter table xxx activate not logged initially可以在一个事务中不记录日志,然后进行删除数据。
当然如果分区明确的话,做成分区表进行数据的转移是最好的。 收起
互联网服务 · 2014-05-29
浏览654
sunchaosailor sunchaosailor 软件开发工程师 SIA
回复 2# ydliujiang    我希望仅删除表中的一部分,不是把整个表全部删除。truncate不能按条件删除啊!显示全部
回复 2# ydliujiang


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

提问者

sunchaosailor
软件开发工程师 SIA
评论15

相关问题

问题状态

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