点击这里给我发消息 点击这里给我发消息
首页 > 行业资讯 > Oracle>详细内容

oracle中将字典管理表空间转换为本地管理表空间

添加时间:2010-6-22
    相关阅读: 数据库 SQL

首先要知道本地管理表空间和字典管理表空间的区别。

    字典管理表空间每当表或其他对象需要扩大的时候都检查其数据字典以确保有可用的空间分配给对象,然后给对象分配一个新区段并更新其可用空间信息。

    本地管理表空间保存数据文件本身的空间管理信息,而且表空间自动跟踪每个数据文件块的可用或已用状态。

    在事务比较多的数据库中显然字典管理每次插入数据时都会检查数据字典,这就使得数据库性能有所损耗。

    转换:

    第一种方法——命令方式转移。

    首先你要新建一个oracle表空间,在oracle 10g以后默认都是采用本地管理表空间的。

    对于表空间的转移使用命令

    ALTER TABLE temp MOVE TABLESPACE new_temp;

    对于索引你需要重建

    ALTER TABLE index REBUILD TABLESPACE new_index;

    或许你可以采用oracle提供的PL/SQL数据包中的DBMS_SPACE_ADMIN.

    显然上面的方法并不适用于对system表进行转换,因为你不能建立2个同名的system表。

    在转换system表前,你必须把所有的其他表空间转换为本地管理。

    EXECUTE dbms_space_admin.tablespace_migrate_to_local("tablespace"); ——转行表空间

    然后同样的方法将system表空间也进行转换。

    EXECUTE dbms_space_admin.tablespace_migrate_to_local("system");

    使用这种方法很好,但是它建立的表空间没有automatic segment space managerment选项,所有字典管理表空间都是用默认手动段空间管理,而且在转换为本地管理的表空间是不能进行修改。

    还有一个缺点,就是表空间如果存在空间碎片的话,此方法也不能解决碎片问题。

    所以oracle建议你,采用第一种方法

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册