数据的删除很慢,怎么办

        工作中遇到这样一个问题,删除(delete)某张表的数据时,发现很慢。使用的数据库是oracle。差不多两分钟删除了10条。

分析了一下,主要是一下问题引起的。

    1删除时有子查询

    2有索引

    3外键约束

在不能truncate的情况下怎么删除比较快呢?

    1优化查询条件

    2每删除一定数据进行提交,commit。

    3删除索引,把数据删除后重建。

    4禁用约束,数据删除后再打开。约束的影响是非常大的,因为每一条删除都要去相关表中做判断。这次删除中遇到的这个问题主要就是约束引起的,瓶颈就在这里。

禁用约束的执行语句如下:

alter table 'table name' disable constraint 'constraint name';

启用约束的语句如下:

alter table 'table name' enable constraint 'constraint name';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值