码迷,mamicode.com
首页 > 其他好文 > 详细

重建索引到指定表空间

时间:2015-04-21 17:57:58      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

数据存储时,最好是将数据与索引分开存储在不同的表空间中,因为建立索引是要占用硬盘存储空间的,索引表空间和数据表空间建立是一样的

下面语句用于移动索引到指定表空间:

alter index ha_wxzj.index_name rebuild tablespace ha_wxzj_index_data;

也可以利用以下语句获得某个schema下移动索引表空间的所有语句:
复制代码 代码如下:

select ‘alter index ‘||owner||‘.‘||index_name||‘ rebuild tablespace ha_wxzj_index_data ;‘
from dba_indexes
where table_owner=‘ha_wxzj‘
order by index_name;

有一点需要注意的是,一旦把表和索引放在不同表空间后,在创建新表时,如果表有主键或唯一约束,记得要指定到索引的表空间

create table tmp(
mon varchar2(6) ,
idno varchar2(10) ,
constraint pk_name primary key (idno )
using index tablespace ha_wxzj_index_data,
constraint uk_name unique (mon)
using index tablespace index_tbs
) ;

 

--给表增加主键,并指定唯一索引的表空间
alter table tt
add constraint tt_id primary key (ID)
using index
TABLESPACE SKY_INDEX_DATA

 

select index_name,table_name,tablespace_name From user_indexes where tablespace_name=‘HA_WXZJ_DATA‘

--游标方式 重建索引到指定表空间
declare cursor cursor_index
is select index_name from user_indexes where tablespace_name=‘HA_WXZJ_DATA‘; --原索引表空间
begin
for indexname in cursor_index loop
execute immediate ‘alter index ‘||indexname.index_name|| ‘ rebuild tablespace HA_WXZJ_INDEX_DATA‘; --指定表空间
end loop;
end;

 

重建索引到指定表空间

标签:

原文地址:http://www.cnblogs.com/tianmingt/p/4444889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!