oracle中使用append的问题

问题:最近数据库管理员说我们的生产库备份数据的时间花的越来越长,让我们自己看下问题有没有不需要的数据。

我看了下我们的用户所用的表空间用了七八个G,也不是很多,原因是正常情况下这个用户下的数据应该不多。

我按表分组查询大小发现有一张表占了五个多g,而表的数据量也只在100w左右,字段也不是很复杂,不应该占

这么多空间。

我查看了这个表数据的采集存储过程(存储过程是每天运行的),发现有这么一段code:

delete  from  table;

****

insert /*+append*/ into table  selec * from **;

问题是由这段code导致的,原因是delete操作本来就对高水位的标志没有影响,而加上了append的语句在插入的时候是

直接插在了高水位以后的块的,所以导致了表象上这个表所占用的表空间的大小持续在增长;

解决办法:1.把delete操作 改成 truncate操作

                    2.如果不能用truncate,那么insert中的append必须要去掉,可以改成paracell。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值