dbms_space_Admin.tablespace_migrate_to_local的实用案例

本文通过实例展示了如何利用dbms_space_Admin.tablespace_migrate_to_local过程将数据字典管理表空间转换为本地管理,从而显著减少drop tablespace操作的时间,从原来的50多分钟缩短到1分钟左右。此方法适用于解决因删除大量extents导致的数据库性能问题。
摘要由CSDN通过智能技术生成

在前几天的log中提到了如何将system表空间从dictionary-management tablespace转换为local management tablespace。

在本文中将讲述dbms_space_Admin.tablespace_migrate_to_local的另一个实用的案例。


当我们需要drop 一个包含很多extents的数据字典管理表空间是一件比较头痛的问题。

他需要不停的访问UET$和FET$表,执行插入,删除操作,长期占有ST enqueue,造成数据库长时间无法allocate和deallocate extents,情况严重可能会造成很严重的后果。


如何减少drop tablespace的时间呢?请看下面这个例子

例子取自metalink note:311512.1

执行时间从50多分钟减少到1分钟左右

Following are the test results -

CASE 1 - Dropping a DMT directly 
-----------------------------------------------

SQL> select bytes,count(*) from dba_extents where tablespace_name='DMT_DROP' group by bytes;

BYTES COUNT(*)
---------- ----------
2048 92359
4096 1

14:41:42 SQL> drop tablespace dmt_drop including contents;

Tablespace dropped.

15:32:31 SQL>

-----> Takes around 50 minutes to drop.

CASE 2 - Dropping a DMT after converting to LMT
--------------------------------------------------------------------
select bytes,count(*) from dba_extents where tablespace_name='DMT_DROP' group by bytes;

BYTES COUNT(*)
---------- ----------
2048 92359
4096 1

17:00:33 SQL> exec dbms_space_Admin.tablespace_migrate_to_local(tablespace_name=>'DMT_DROP')

PL/SQL procedure successfully completed.

17:01:14 SQL> drop tablespace dmt_drop including contents;

Tablespace dropped.

17:01:32 SQL>

-----> Takes around 1 minute to drop.


在8i,需要把init.ora的compatible = 8.1.0改为compatible = 8.1.6,否则会出现兼容性警告,运行不了该PROCEDURE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值