Oracle delete数据后的释放表空间问题的解决 |
本文标签:Oracle delete 我们都知道数据表的庞大导而致其查询速度的降低是水到渠成的,所以我们只有将相关的数据表的数据相应的移走,但是如果使用Oracle delete之后,相关的数据删除了,但是速度没有多大改善,忧闷了 。 使用备份表再drop掉原表 。的确可以解决问题 。但是较麻烦,今天请教了一个Oracle高手,解决了问题 。 由于Oracle delete操作是不释放表空间的,要想提高查询速度则必须释放表空间 。 对Oracle 9i而言,释放表空间则需要重新分析表 。
再进行select ,感觉的确快了很多 。 另一种方法:使用exp将表导出,drop 掉表,再imp回去 。 先做个简要笔记 今天,帮同事导数据,从开发环境导到测试环境中,发现一个查询变的很慢 。查看执行计划,发现居然用了全表扫描(表中大约300w条记录),为啥不用索引呢,查看索引状态,一切正常 。晕 。 肯定是索引的问题,先分析一下表再说 。
正常了 。 一个论坛上的帖子: Analyze table对Oracle性能的提升 大家来讨论一下这个优化课题 我自己碰到的一个实际情况: 一个sql语句执行要1个小时,有时候还出不了结果,但分析sql涉及的表后,然后重新执行3分钟搞定! 真的有这样惊人的差异? 世事无绝对,有时候你可能发现会变慢 了解了CBO和RBO你就知道区别了 annlyze表会增加CBO执行的性能?不一定的 。 我就碰到一个语句分析后要执行30多分钟,删除分析后,只要30秒 。 很多情况下不一定的,最好是自己从执行计划判断 以上的相关内容就是对Oracle delete数据后的释放表空间问题的介绍,望你能有所收获 。 |