Oracle转移表和索引所在的表空间
Oracle转移表和索引所在的表空间
如果你将创建表和索引创建在USERS表空间下了,(注:在USERS表空间中是合理的),那么在以后的维护中将会出现很多麻烦。
如果是系统无法删除重建,所以必须考虑在不影响使用的情况下做该项工作。
1、表空间移动命令:
alter table table_name move tablespacetablespace_name;
得到表空间移动语句:
得到该连接用户下所有创建在USERS表空间下的表名。
2、执行所得到的语句,至此将表转移到新表空间中。
3、重建索引
命令:
alter index index_name
得到重建索引语句
4、执行得到的语句,将索引转移到新表空间。
alterindex rebuild与alter index rebuildonline的区别
alter indexrebuild online实质上是扫描表而不是扫描现有的索引块来实现索引的重建alter indexrebuild 只扫描现有的索引块来实现索引的重建。
online时可以在该索引的基表上执行DML,在在对基表操作的同时可以REBUILD INDEX,但是不能执行DDL语句,所以他们的锁机制是不样的。
创建索引时通常会对该表设置一个表级共享(DML)锁,如果设置ONLINE,
如果是非ONLINE方式,通常会对该表设置一个表级共享(DML)锁,那么就对DML语句冲突,如果设置ONLINE ,(会使用临时日志IOT表来记录中间改变的数据),但要使用两倍于传统方法的空间.表会变成行级共享锁,在创建索引或者ALTER完成后,对临时日志表与基表进行MERGE
目录 返回
首页