db2 删除大表部分数据

db2 delete大表部分数据时经常会产生很大日志,造成数据库日志空间满的情况。


解决方法:

1、细分删除区间范围

增加where条件,确保每次删除事务只删除少量数据,以执行次数换执行安全

2、删除区间不记日志

commit

alter table tablename active not logged initially

delete tablename where id>1000

commit

两个commit之间的删除动作不记日志,操作完commit后恢复到记日志

3、增加日志文件大小

db2 update db cfg for dbname using LOGFILSIZ 262144

db2 update db cfg for dbname using LOGPRIMARY 20

4、小表设计--根本解决之道

在数据表设计时,就考虑到可能存放大数据的表根据时间或者其他字段拆分为很多小表,这样每次涉及数据删除都用/dev/null直接清空


注:
delete操作执行期间,相关表会加E锁,只允许其他应用以WITH UR读方式进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值