【Oracle SQL】表迁移表空间Table Move Tablespace

1. 迁移表空间(oracle 11g)

MOVE会锁表,locked mode=6,专用锁,其他操作无法进行

--1.1 move tablespace
alter table USER1.TABLETEST1 MOVE TABLESPACE TBS_USER;

--1.2 重建索引
SELECT 'alter index '||OWNER||'.'||INDEX_NAME||' REBUILD TABLESPACE TBS_USER;' FROM dba_indexes 
where OWNER = 'USER1' and TABLE_NAME = 'TABLETEST1';
alter index USER1.IDX_USER1_ID REBUILD TABLESPACE TBS_USER;

2. 在线迁移表空间(oracle 12.2)

oracle 12.2新特性

--1.1 move tablespace
alter table USER1.TABLETEST1 MOVE ONLINE TABLESPACE TBS_USER;

--1.2 重建索引
SELECT 'alter index '||OWNER||'.'||INDEX_NAME||' REBUILD ONLINE TABLESPACE TBS_USER;' FROM dba_indexes 
where OWNER = 'USER1' and TABLE_NAME = 'TABLETEST1';
alter index USER1.IDX_USER1_ID REBUILD ONLINE TABLESPACE TBS_USER;

3. 迁移后收集统计信息

--查询统计信息状态是否被锁
--oracle 11g进行MOVE TABLESPACE后,会导致统计信息被锁,无法进行统计信息收集
select owner, table_name, stattype_locked from dba_tab_statistics a 
where table_name='TABLETEST1'
and a.stattype_locked in ('ALL','DATA','CACHE') 
and owner = 'USER1';
 
--统计信息解锁
begin
  dbms_stats.unlock_table_stats(ownname => 'USER1',
                                tabname => 'TABLETEST1');
end;
/

--收集统计信息
begin
  dbms_stats.gather_table_stats(ownname => 'USER1',
                                tabname => 'TABLETEST1');
end;
/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值