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


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

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

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

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

    转换:

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

    首先你要新建一个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建议你,采用第一种方法。



相关阅读:
使用PHP和XSL stylesheets转换XML文档
VBScript压缩单个文件为zip格式
asp 延时 页面延迟的三种方法
vbs实现的定时关机、重启的脚本和程序
ASP实例教程:用户信息和服务器
用js实现的检测浏览器和系统的函数
关于IE6、7、8下实现盒阴影的几个注意点
MYSQL教程:MySQL服务器镜像配置
VBS教程:正则表达式简介 -选择与编组
js 进度条实现代码
MYSQL常用命令与实用技巧
分享关于ASP.NET中等安全模式的一些经验
asp实现的7xi音乐网的采集源代码
RMAN和EXP/IMP转移数据实测
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4