未使用分区表造成系统缓慢

系统环境

RHEL5u4,oracle11GR2

故障现象

每个月的第八天,系统都会很缓慢,当天直至下午两点左右

具体情况

接到很多投诉,每个月的这一天上午,系统都会非常缓慢,但是并不阻塞,比平常慢几十倍,平常几秒钟完成的查询,会变成十几分钟

对数据库分析后,发现这个时间段数据库资源使用率很高,cpu能到到80%以上,但是业务量比平时并没有增加多少

后来发现在数据库中运行着几十条这样的SQL,delete from t_name where j_time(to_date('2012-04-01","YYYY-MM-DD")

然后和开发部门联系证实,他们有一个job会从前一天凌晨两点开始,做一个批处理删除一个月之前的数据,以便释放空间

看到的SQL语句就是还没有执行完的job

解决过程

一个月产生的数据有几十G,用delete删除,资源消耗很大

提出解决方案,将需要删除数据的表改为分区表,按每个月一个分区的方式创建分区,

清空数据表使用alter table t truncate partition p_name

这个操作对于几十G的数据的分区来说,执行时间只用了20s左右

delete操作至少两个问题,消耗大量系统资源,无法释放空间


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值