联机对象重组织

本文介绍如何在Oracle数据库中执行在线维护任务,包括联机重新定义表、创建索引、重建索引、合并索引及重建索引组织表等操作。通过使用DBMS_REDEFINITION包和其他SQL命令,可以在不影响业务的情况下进行这些操作。
摘要由CSDN通过智能技术生成
---------------------联机重新定义表
对于没有主键的表,在上面定义了物化视图和物化视图日志表。物化视图容器表,高级排队表,或IOT溢出表不能执行联机重组织。
(1)首先,要检验能够重定义该表
(2)执行dbms_redefintion程序包的can_redef_table程序来检验能够重定义该表,它的输入参数时用户名和表名
execute dbms_redefintion.can_redef_table('scott','customer');
(3)在相同的模式下,创建一个临时表,它具有重定义的表的期望的属性
create table customer_interim();
(4)开始重定义过程,它输入的变量时模式所有者,将要重定义的表,临时表和列映射
execute dbms_redefintion.start_Redef_table('scott','customer','customer_intrim');
(5)在临时表上创建任何要求的触发器,索引,授权或约束不允许创建外键直到完成了重定义过程
当重定义过程完成时,临时表上的索引,触发器,约束和授权将会替代原始表上的对应部分。此时会启用临时表上禁止的引用约束
 (6)为了完成重定义,执行dbms_redefintion 程序,它的输入参数时模式名,原始的表名称,和临时表名称
execute dbms_redefinition.finsh_redef_table('scott','customer','customer_intrim')
---------------------联机创建索引
在终端用户可以使用基本表时可以创建和重建索引。在创建索引的同时不允许ddl操作
create index auth$name on author(authorname) online;
---------------------联机重建索引
当使用alter index命令的rebuild语句时,oracle使用现存的索引作为新索引的数据源,因此,在进行操作时必须有足够的空间来存储索引的两个副本。可以使用alter index rebuild命令来改变
一个索引的存储特征和表空间分配
alter index auth$name rebuild online;
--------------------联机合并索引
可以合并索引来收回索引内的空间,合并索引时,不能将它移动到另一个表空间
alter index auth$name coalese;
-------------------联机重建索引组织表
可以使用alter table ...move online命令来联机重建索引组织表。在存在溢出的数据快的情况下,如果指定overflow关键字,会重建该数据段
alter table bookshelf move online;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值