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

原创 2003年08月31日 10:47:00

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

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

测试开始:

1、使用drop tablespace <tablespace_name> 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如何最快的删除大数据量表中的多个字段

提到删除表的字段,我们最初想到的就是alter table xx drop column field1; 但是当我们要对生产环境中大数据量的表进行删除字段,而且不是删除一个两个,有可能删除多个字段,...
  • sdmanooo
  • sdmanooo
  • 2017年02月10日 15:24
  • 1768

Oracle快速清除表数据

摘要: 记录删除表数据的三种方式truncate、delete、drop的相同不同之处、以及如何使用truncate删除有外键约束字段的表数据和如何重置sequence初始值。...
  • chenghuaying
  • chenghuaying
  • 2014年12月31日 10:44
  • 6082

oracle数据库之删除数据文件[物理地删除一个数据文件但它的信息仍然记录在数据字典v$datafile中]

oracle数据库之删除数据文件! 没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了):因为使用alter databas...
  • haiross
  • haiross
  • 2014年01月14日 16:24
  • 2524

Oracle的学习四:数据库管理员、逻辑备份与恢复、数据字典、动态性能视图、管理表空间与数据文件

1.数据库管理员 职责: 1.安装和升级Oracle数据库 2.建库、表空间、表、视图、索引 3.指定并实施备份与恢复计划 4.数据库权限管理、调优、故障排除 ...
  • gaoqinqing
  • gaoqinqing
  • 2011年12月26日 15:12
  • 394

Oracle表空间为"本地管理"与"数据字典"管理区别?

在Oracle8I的版本中,Oracle推出了一种全新的表空间管理方式:本地化管理的表空间。     所谓本地化管理,就是指Oracle不再利用数据字典表来记录Oracle表空间里面的区的使用状...
  • vtopqx
  • vtopqx
  • 2013年04月21日 23:03
  • 1275

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

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

疯狂Java_疯狂软件_Oracle_数据字典和创建表空间

  • 2015年11月20日 08:52
  • 25.98MB
  • 下载

Oracle表空间和数据字典基本概念和常用sql

oarcle
  • sureSand
  • sureSand
  • 2017年12月05日 18:46
  • 42

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

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

创建数据字典管理的表空间

jcq0>show userUSER 为"SYS" jcq0>create tablespace dictionary_t   2  datafile 'D:\ORACLE\ORADATA\DB_NA...
  • babymouse1212
  • babymouse1212
  • 2017年05月02日 10:41
  • 88
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle中如何快速删除数据字典管理的表空间
举报原因:
原因补充:

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