Oracle delete数据后的释放表空间问题的解决

数据库 Oracle
以下的文章主要是介绍Oracle delete数据之后的相关的释放表空间的问题的解决,下面就是相关内容的主要描述,望你会有所收获。

我们都知道数据表的庞大导而致其查询速度的降低是水到渠成的,所以我们只有将相关的数据表的数据相应的移走,但是如果使用Oracle delete之后,相关的数据删除了,但是速度没有多大改善,忧闷了。

使用备份表再drop掉原表。的确可以解决问题。但是较麻烦,今天请教了一个Oracle高手,解决了问题。 由于Oracle delete操作是不释放表空间的,要想提高查询速度则必须释放表空间。

对Oracle 9i而言,释放表空间则需要重新分析表。

 

  1. analyze table itemLog compute statistics; 

再进行select ,感觉的确快了很多。

另一种方法:使用exp将表导出,drop 掉表,再imp回去。

先做个简要笔记

今天,帮同事导数据,从开发环境导到测试环境中,发现一个查询变的很慢。查看执行计划,发现居然用了全表扫描(表中大约300w条记录),为啥不用索引呢,查看索引状态,一切正常。晕。

肯定是索引的问题,先分析一下表再说。

 

  1. analyze table ysgl_compile_reqsub compute statistics for all indexes; 

正常了。

一个论坛上的帖子:

Analyze table对Oracle性能的提升

大家来讨论一下这个优化课题

我自己碰到的一个实际情况:

一个sql语句执行要1个小时,有时候还出不了结果,但分析sql涉及的表后,然后重新执行3分钟搞定!

真的有这样惊人的差异?

世事无绝对,有时候你可能发现会变慢

了解了CBO和RBO你就知道区别了

annlyze表会增加CBO执行的性能?不一定的。

我就碰到一个语句分析后要执行30多分钟,删除分析后,只要30秒。

很多情况下不一定的,***是自己从执行计划判断

以上的相关内容就是对Oracle delete数据后的释放表空间问题的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle数据库的类型LONG功能的介绍
  2. Oracle查询优化4大方面的主要途径
  3. Oracle用户的相关授权和管理的分析
  4. Oracle 外键的相关约束中级联删除的方案
  5. Oracle 数据库的各种不同版本的差别
责任编辑:佚名 来源: 博客园
相关推荐

2010-04-06 09:58:13

Oracle dele

2010-04-08 15:59:50

Oracle undo

2010-04-28 17:59:19

Oracle表空间

2010-05-10 18:05:15

Oracle释放und

2011-05-20 15:50:06

oracle

2011-08-11 18:38:05

Oracle回滚段

2009-11-06 14:07:58

Oracle用户表空间

2010-11-16 11:32:54

ORACLE增加表空间

2010-11-16 10:32:01

Oracle创建表空间

2010-03-24 09:42:12

Oracle数据库

2016-12-27 15:47:19

临时表空间数据

2010-10-27 14:41:45

Oracle查询用户表

2010-04-15 14:18:30

Oracle创建

2010-10-29 10:22:21

Oracle表空间

2010-11-16 11:17:41

Oracle表空间大小

2010-11-16 10:15:24

oracle创建表空间

2010-04-15 14:39:56

Oracle创建表空间

2011-08-24 14:21:44

Oracle 10gUNDO表空间

2010-05-06 09:42:28

Oracle表空间

2011-08-05 12:44:57

Oracle数据库表空间
点赞
收藏

51CTO技术栈公众号