如何把索引移动到另外的表空间

来源:互联网 发布:男士皮手套 知乎 编辑:程序博客网 时间:2024/05/21 09:43

有时候,数据库中的索引会调整,移动到另外的表空间中。一般在项目开发时,没有控制好数据库的管理,开发人员在创建表和索引的时候,一般没有指定表空间,Oracle数据库则默认安装在users的表空间中,这就导致users表空间越来越大的缘故。下面表users表空间中的索引移动动相应的表空间中。
--1查询users表空间中有多少索引
select   *   from   dba_indexes   where    tablespace_name='USERS';
--2 比如:把索引IK_CDFPT_STTC移动到PUB_NORM_SPACE表空间
alter   index   IK_CDFPT_STTC   rebuild tablespace   PUB_NORM_SPACE;
--3查看是否移动到相应的表空间
select   *   from dba_indexes   where   index_name='IK_CDFPT_STTC'

如果批量的移动索引:
--4用select查询处理sql语句,把COMM表开头的索引移动到PUB_NORM_SPACE表空间中
select   'alter index  '  ||    index_name    ||'    rebuild     tablespace    PUB_NORM_SPACE;'     from     dba_indexes     where     tablespace_name='USERS'      and      table_name like 'COMM_%';

--5执行上面4步骤select出来的脚本

原创粉丝点击