下面这篇文章主要介绍Oracle删除数据后释放表空间的问题,以Oracle 9i为例。下面是相关内容的具体介绍,下面是Oracle删除相关内容的具体介绍。希望您在浏览以下内容后有所收获。
难免会因为数据表的巨大而降低查询速度,所以数据表中的数据经常被删除,但是使用delete之后,数据被删除了,但是速度并没有太大的提升删除表空间有影响么,而且这令人沮丧。使用备份表并删除原始表。它确实解决了问题。但是比较麻烦。今天咨询了一位Oracle高手,解决了这个问题。由于删除操作不释放表空间,为了提高查询速度,必须释放表空间。
对于 Oracle 9i,释放表空间需要重新分析表。
- analyze table itemLog compute statistics;
再次选择后,确实感觉快了很多。
其他方式:
使用 exp 导出表,删除表,然后将其返回。首先做一个简短的说明。今天帮同事把数据从开发环境引导到测试环境,发现一个查询变得很慢。查看执行计划,发现使用了全表扫描(表中大约300w条记录)。为什么不使用索引?检查索引状态,一切正常。
肯定是索引问题,我们先分析一下表。
- analyze table ysgl_compile_reqsub
compute statistics for all indexes;
普通的。
论坛上的一个帖子:
分析表可提高 Oracle 性能。我们来讨论一下我在这个优化话题中遇到的一个实际情况:
执行一条sql语句需要1小时,有时还没有结果删除表空间有影响么,但是分析sql涉及的表后,重新执行3分钟!真的有这么惊人的区别吗?世界上没有绝对,有时你会发现它会慢下来。了解了 CBO 和 RBO 之后,你就会知道它们的区别。
annlyze 表会提高 CBO 执行的性能吗?不确定。我遇到过一个语句分析执行需要30多分钟,删除分析后只需要30秒。很多情况不一定,最好从实施计划中判断。
以上相关内容是对Oracle删除数据后释放表空间问题的详细分析,以Oracle 9i为例,希望大家有所收获。