在以前Oracle版本中move table不能够online, move 会引起 rowid 改变至使对应的索引失效。12c 中 alter table move online不会对新事务阻塞,同时会自动的维护索引的有效性。
-- 创建实验表
SQL> create table andy_move (id int,name varchar2(10));
Table created.
-- 插入数据
SQL>
begin
for i in 1 .. 39 loop
insert into andy_move values(i,'andyi');
end loop ;
commit;
end;
/
PL/SQL procedure successfully completed.
-- 创建索引
SQL> create index idx_andy_id on andy_move(id);
Index created.
-- 查看索引状态
SQL>
col index_name for a25
select table_name,index_name,status,blevel,leaf_blocks,orphaned_entries from user_Indexes where index_name ='IDX_ANDY_ID';
TABLE_NAME INDEX_NAME STATUS BLEVEL LEAF_BLOCKS ORP
------------------------- ------------------------- -------- ---------- ----------- ---
AN
Oracle 12C 新特性之在线move (非分区表)table
最新推荐文章于 2024-07-03 09:19:41 发布
本文介绍了Oracle 12C的一个重要新特性——在线移动非分区表,该操作不会引起ROWID改变导致索引失效,并且在移动过程中能保持新事务的正常进行,同时自动维护索引的有效性。通过示例创建表、插入数据、创建索引,然后演示了在线移动非分区表的过程,展示了移动后索引仍然有效。同时也指出,在尝试对分区表进行在线移动时会报错。
摘要由CSDN通过智能技术生成