Oracle 快速删除数据字典管理的表空间

原创 2004年10月10日 14:39:00

Oracle 快速删除数据字典管理的表空间

我的测试环境 :Hp rp7410 主机, Hp-unix11.11 OS,Oracle 8.1.7 .4 的数据库 , 一个有 90 张表大约 100G 的测试表空间 TBS_TEST.

问题的提出: Oracle 中在使用 drop tablespace including contents; 删除数据字典管理的表空间时存在着很大的效率问题。

   测试开始 :

1 、使用 drop tablespace including contents; 方式直接来删除 .

SQL>set linesize 132

SQL>set pagezie 0

SQL>set timing on

SQL>drop tablespace TBS_TEST including contents

2 /

   已用时间 : 03: 35: 39.10

   经过我耐心的等待,花了三个半小时。

2 、测一下同样的表空间,把它转换为 Local 方式管理的删除效率。

a 、把 TBS_TEST 通过恢复回来。

b 、把 TBS_TEST 转化为 Local 管理的方式。

SQL>set timing on

SQL> exec sys.dbms_space_admin.tablespace_migrate_to_local('TBS_TEST') ;


   已用时间 : 00: 06: 33.25

c 、删出这个空间。

SQL> drop tablespace TBS_TEST including contents

2 /

   已用时间 : 00: 00: 45.56

   可以看到总共才花费了 7 分多钟。

3 、测一下同样的表空间,先删除其中的对象,然后再删这个表空间的效率如何。

a 、把 TBS_TEST 通过恢复回来。

b 、形成删除表的语句

SQL>set linesize 132

SQL>set pagezie 0

SQL>set timing off

SQL>spool drop_test_tables.sql

SQL>SELECT 'Drop table '||TABLE_name||';' FROM dba_tables WHERE tablespace_name='TBS_TEST';

SQL>spool off

c 、删除表

SQL>@drop_test_tables.sql

   这一步大约花费 20 秒

d 、删出这个空间。

SQL>set timing on

SQL> drop tablespace TBS_TEST including contents;

   已用时间 : 00: 07: 35.53

   可以看到总共才花费了将近 8 分钟。

   总结:我们在做数据字典管理的表空间的删除时,最好先删除表空间中的对象再进行删除该表空间操作。也可以先把它转换为本地 (local) 管理的空间再进行删除。不过需要补充的是本地管理的空间在 8i 以后的版本中才是有的。

Oracle本地管理对比数据字典管理表空间

Locally vs. Dictionary Managed Tablespaces 整理自:http://www.orafaq.com/node/3. When Oracleallocates ...
  • IndexMan
  • IndexMan
  • 2014年09月02日 13:11
  • 3327

Oracle数据库(数据字典、表空间、表的创建、视图)

Oracle之数据字典、表空间、表的操作、视图
  • u013412772
  • u013412772
  • 2016年10月04日 14:30
  • 3041

Oracle删除表空间的同时删除数据文件

临时表空间主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze...
  • leader1989
  • leader1989
  • 2014年08月20日 15:31
  • 5529

Oracle 删除表中记录 如何释放表及表空间大小

1.查看一个表所占的空间大小: SELECT bytes/1024/1024 ||'MB' TABLE_SIZE ,u.* FROM USER_SEGMENTS U WHERE U.SEGMENT_...
  • xixi_666
  • xixi_666
  • 2015年09月02日 16:17
  • 6626

Oracle中关于清除数据释放表空间等方面的sql

前些日子,数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G。但是,采用了很多办法才释放掉表空间,主要是系统中大量使用分区表,而针对分区表清除数据,不会释放表空间,必须把分区drop掉,才会...
  • xtdhqdhq
  • xtdhqdhq
  • 2015年05月13日 11:42
  • 3990

Oracle 用户和表空间的创建与删除

刚开始接触Oracle数据库的小白我,分享一下在Oracle中如何创建用户及表空间和删除用户及表空间。首先,在进行Oracle进行操作时,要用到可视化工具PL/SQL Developer 。地址htt...
  • u010011371
  • u010011371
  • 2015年12月03日 20:55
  • 1292

详解Oracle本地管理表空间

详解Oracle本地管理表空间 分类: [oracle]--[存储结构] 2011-11-13 22:17 926人阅读 评论(0) 收藏 举报 oracletablesqluser数据库 ...
  • haiross
  • haiross
  • 2013年10月16日 16:10
  • 2441

Oracle 删除数据后释放数据文件所占磁盘空间

测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小。经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办...
  • xtdhqdhq
  • xtdhqdhq
  • 2015年05月13日 13:49
  • 4948

Oracle创建/删除表空间和用户

创建表空间和用户开启Oracle服务 Win+R输入cmd打开命令提示符窗口 登录 sqlplus /nolog connect /as sysdba; 先创建表空间 create tab...
  • u012424148
  • u012424148
  • 2016年08月27日 23:23
  • 3621

oracle 如何导出数据字典

-- 查询某表的数据字典  SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",  DECODE(A.CHAR_LENGTH,0,DECODE(A....
  • tanguang_honesty
  • tanguang_honesty
  • 2014年02月19日 12:39
  • 6458
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 快速删除数据字典管理的表空间
举报原因:
原因补充:

(最多只允许输入30个字)