• 售前

  • 售后

热门帖子
入门百科

Oracle中怎样把表和索引放在差异的表空间里

[复制链接]
一身似水厝 显示全部楼层 发表于 2021-10-26 14:02:49 |阅读模式 打印 上一主题 下一主题
由于:
1)提高性能:
只管把表和索引的表空间存储在不同在磁盘上,把两类不同IO性子的数据分开放,如答应以提高磁盘的IO总体性能;
2)便于管理:试想一下,假如索引的数据文件损坏,只要创建索引即可,不会引起数据丢失的题目。
下面语句用于移动索引的表空间:
复制代码 代码如下:
alter index INDEX_OWNER.INDEX_NAME rebuild tablespace NEW_TBS;

也可以利用以下语句得到某个schema下移动索引表空间的所有语句:
复制代码 代码如下:
select 'alter index '||owner||'.'||index_name||' rebuild tablespace NEW_TBS;'
from dba_indexes
where table_owner='SCHEMA_NAME'
order by index_name;

有一点需要留意的是,一旦把表和索引放在不同表空间后,在创建新表时,假如表有主键或唯一束缚,记得要指定到索引的表空间,可以参考下面的例子:
复制代码 代码如下:
create table tmp(
MON VARCHAR2(6) ,
IDNO VARCHAR2(10) ,
constraint pk_name primary key ( MON, IDNO )
using index tablespace index_tbs,
CONSTRAINT uk_name UNIQUE (MON)
using index tablespace index_tbs
) ;

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作