重建索引到指定表空间

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

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

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;

时间: 2024-10-11 13:26:19

重建索引到指定表空间的相关文章

移动lob类型索引到指定表空间

WWWNEWSAD 为表名 USERS 为原表空间 CONTENT 为lob类型的字段 DATA_INDEX_WXZJ 指定的表空间 ALTER TABLE WWWNEWSAD MOVE TABLESPACE USERS LOB ( CONTENT) STORE AS (TABLESPACE DATA_INDEX_WXZJ );

oracle创建表空间 创建用户指定表空间并授权

1.创建表空间 例如: (1)表空间名为myplace: (2)数据文件路径为E:\oracle\oracle_home\oradata\myspace (3)文件名为mydbf.dbf,空间大小为32M (4)设置表空间自动扩展,每次扩展32M,最大空间为2048M (5)本地管理表空间 create tablespace myspace     logging       datafile 'E:\oracle\oracle_home\oradata\myspace\mydbf.dbf' 

Oracle数据导入指定表空间

Oracle数据导入指定表空间 1. 打开工具Oracle SQL Plus 以dba身份登录sys用户sqlplus /nologconn [email protected] as sysdba 2. 创建用户并指定表空间 使用客户端工具或者Web管理控制台创建表空间以及用户给用户赋予connect.resource.dba权限grant connect,resource,dba to username; 注意:给oracle用户分配connect.resource角色时,此时connect

oracle 10g将数据导入到指定表空间的步骤

--创建临时表空间 create temporary tablespace  yhtemp tempfile 'D:/oracle/oradata/Oracle10g/yhtemp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; --创建数据表空间 create tablespace yh logging datafile 'D:/oracle/oradata/Oracle10g/yh.db

oracle imp导入库到指定表空间

1.创建表空间 create tablespace example_tablespace datafile 'e:\****.dbf' size 10m reuse autoextend on next 1m maxsize unlimited; 2.创建用户,指定表空间,临时表空间 create user username identified by password default tablespace usertablespace temporary tablespace temp; 3.

oracle 创建用户和imp指定表空间

创建用户: 1,sqlplus sys/pwd as sysdba; 2, create user username identified by password; 3, grant dba,connect,resource to username; 查看表空间使用情况: SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BY

Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间

/* 说明:若已经存在相应的用户和表空间,则需要先删除相应的用户和表空间 然后再全部重新建立 */ --删除用户 drop user USERNAME cascade; --删除表空间 drop tablespace DATA_TEMP including contents and datafiles; drop tablespace DATA including contents and datafiles; --创建临时表空间 create temporary tablespace DATA

创建表空间、创建用户并指定表空间

/*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_temp.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management local;   /*第2步:创建数据表空间  */create tablespace yuhang_data  logging  datafile

ORA-01654 索引 无法通过 表空间扩展

"ORA-01654: 索引VGSM.AUDIT_DATA_I无法通过8192(在表空间KLDB中)扩展" 1.有可能是索引表空间不够 select sum(bytes/1024/1024) sizeMB from dba_free_space z where z.tablespace_name='KLDB' 还有400M的剩余空间 应该足够. 但是通过查询发现是 select s.index_name, s.table_name, s.tablespace_name, s.initi