概述 移动一张表实际上是一个重组过程,数据库会将原来的数据复制到新的地方。但是如果你发现这个表在移动后性能下降了,可能是你的索引没有重建。本文将指导您找到依赖索引并重建它们。 Oracle表移动后应该做哪些事情?Oracle表移动后应该做哪些事情? 将表从示例移动到用户 SQL> select tablespace_name from dba_tables where owner = 'HR' and table_name = 'EMPLOYEES'; TABLESPACE_NAME ------------------------------ EXAMPLE SQL> alter table hr.employees move tablespace users; Table altered. SQL> select tablespace_name from dba_tables where owner = 'HR' and table_name = 'EMPLOYEES'; TABLESPACE_NAME ------------------------------ USERS 查看哪些索引取决于此表 SQL> column index_name format a30; SQL> column tablespace_name format a30; SQL> column status format a10; SQL> select index_name, tablespace_name, status from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; INDEX_NAME TABLESPACE_NAME STATUS ------------------------------ ------------------------------ ---------- EMP_JOB_IX EXAMPLE UNUSABLE EMP_DEPARTMENT_IX EXAMPLE UNUSABLE EMP_MANAGER_IX EXAMPLE UNUSABLE EMP_NAME_IX EXAMPLE UNUSABLE EMP_EMAIL_UK EXAMPLE UNUSABLE EMP_EMP_ID_PK EXAMPLE UNUSABLE 6 rows selected. 如您所见,所有依赖索引都是UNUSABLE。这意味着,数据库不会自动重建它们。你必须自己做。 编写所有重建语句,然后执行它们 SQL> select 'alter index ' || owner || '.' ||index_name || ' rebuild tablespace users;' as SQL_TO_BE_EXECUTED from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; SQL_TO_BE_EXECUTED -------------------------------------------------------------------------------- alter index EMP_JOB_IX rebuild tablespace users; alter index EMP_DEPARTMENT_IX rebuild tablespace users; alter index EMP_MANAGER_IX rebuild tablespace users; alter index EMP_NAME_IX rebuild tablespace users; alter index EMP_EMAIL_UK rebuild tablespace users; alter index EMP_EMP_ID_PK rebuild tablespace users; 6 rows selected. 或者您可以重建原始表空间的索引。 SQL> select 'alter index ' || owner || '.' ||index_name || ' rebuild tablespace ' || tablespace_name || ';' as SQL_TO_BE_EXECUTED from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; SQL_TO_BE_EXECUTED -------------------------------------------------------------------------------- alter index HR.EMP_DEPARTMENT_IX rebuild tablespace EXAMPLE; alter index HR.EMP_NAME_IX rebuild tablespace EXAMPLE; alter index HR.EMP_MANAGER_IX rebuild tablespace EXAMPLE; alter index HR.EMP_EMP_ID_PK rebuild tablespace EXAMPLE; alter index HR.EMP_EMAIL_UK rebuild tablespace EXAMPLE; alter index HR.EMP_JOB_IX rebuild tablespace EXAMPLE; 6 rows selected. 请注意,我们在新表空间USERS中重建索引。也就是说,对于索引,REBUILD相当于表中的MOVE 重建后检查状态 SQL> select index_name, tablespace_name, status from dba_indexes where owner = 'HR' and table_name = 'EMPLOYEES'; INDEX_NAME TABLESPACE_NAME STATUS ------------------------------ ------------------------------ ---------- EMP_JOB_IX USERS VALID EMP_DEPARTMENT_IX USERS VALID EMP_MANAGER_IX USERS VALID EMP_NAME_IX USERS VALID EMP_EMAIL_UK USERS VALID EMP_EMP_ID_PK USERS VALID 6 rows selected. 所有索引都变为VALID,表明所重建的索引有效。
Oracle表移动后应该做哪些事情?
来源:这里教程网
时间:2026-03-03 17:53:45
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 千兆以太网吞吐量测试仪
千兆以太网吞吐量测试仪
26-03-03 - 汽车云走红,云大厂抢破头?
汽车云走红,云大厂抢破头?
26-03-03 - 利用福禄克DSX-5000 CH测试串扰
利用福禄克DSX-5000 CH测试串扰
26-03-03 - plsql developer工具生成sql monitor report
- Nreal、小米、奇点临近,挺进AR智能眼镜高地
Nreal、小米、奇点临近,挺进AR智能眼镜高地
26-03-03 - 【数据库数据恢复】断电导致Oracle数据库数据丢失的数据恢复案例
【数据库数据恢复】断电导致Oracle数据库数据丢失的数据恢复案例
26-03-03 - 【UP_ORACLE】使用AutoUpgrade工具升级Oracle 11.2.0.4至12.2.0.1
- Oracle官网文档学习路线导图
Oracle官网文档学习路线导图
26-03-03 - 科沃斯、石头科技开打扫地机器人“价值战”
科沃斯、石头科技开打扫地机器人“价值战”
26-03-03 - rac环境修改字符集
rac环境修改字符集
26-03-03
