我们知道由于数据表庞大导致查询速度下降,所以只能相应地移动相关数据表中的数据。 但是,在使用Oracle delete之后,虽然删除了相关的数据,但是速度没有太大的改善,我很担心。
使用备份表来drop原始表。 确实可以解决问题。 但是因为很麻烦,所以今天请人教了甲骨文的没骨气的年糕,解决了问题。 Oracle delete操作不会释放表空间,因此必须释放表空间才能加快查询速度。
对于Oracle 9i,必须重新分析表才能释放表空间。
analyzetableitemlogcomputestatistics;
再进行选择的话,确实快了很多。
另一种方法是使用exp导出表,在drop中丢表,然后在imp中返回。
首先做简单的笔记
今天,我发现在领导同事的数据或从开发环境领导到测试环境时,查询速度变慢了。 从执行计划来看,竟然使用了全表扫描(表中的约300w条记录)。 为什么不用索引呢? 从索引的状态来看,一切都正常。 我头晕。
一定是索引的问题,先分析一下表再说吧。
analyzetableysgl _ compile _ reqsubcomputestatisticsforallindexes;
正常了。
在一个论坛上发布:
使用分析表提高Oracle性能
大家一起讨论这个优化课题吧
我遇到的实际情况:
执行一个sql语句可能需要一个小时,也可能没有结果,但在分析与sql相关的表后,再次运行并在3分钟内结束。
真的有这样惊人的区别吗?
事情绝对没有,有时可能会很晚
了解CBO和RBO就知道区别了
annlyze表是否会提高CBO的性能? 不一定。
我遇到某个句子的分析后必须执行30分钟以上,删除分析后,只需要30秒。
在很多情况下,情况并不总是这样。 ***根据执行计划自己判断
以上相关内容是Oracle delete数据后表空间释放问题的介绍,希望您能得到。
【编辑推荐】
【责任编辑: cjdytel:(010 ) 68476606】
好耶0