数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2020年12月18日
 
Oracle快速删除数据字典管理的表空间

我的测试环境:Hp rp主机Hpunix OSOracle的数据库一个有张表大约G的测试表空间TBS_TEST

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

测试开始:

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

SQL>set linesize

SQL>set pagezie

SQL>set timing on

SQL>drop tablespace TBS_TEST including contents

/

已用时间: : :

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

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

a把TBS_TEST通过恢复回来

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

SQL>set timing on

SQL> exec sysdbms_space_admintablespace_migrate_to_local(TBS_TEST) ;

已用时间: : :

c删出这个空间

SQL> drop tablespace TBS_TEST including contents

/

已用时间: : :

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

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

a把TBS_TEST通过恢复回来

b形成删除表的语句

SQL>set linesize

SQL>set pagezie

SQL>set timing off

SQL>spool drop_test_tablessql

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

SQL>spool off

c删除表

SQL>@drop_test_tablessql

这一步大约花费

d删出这个空间

SQL>set timing on

SQL> drop tablespace TBS_TEST including contents;

已用时间: : :

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

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

上一篇:Oracle中table函数的应用

下一篇:Oracleebs11.5forlinuxas4安装心得