首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在间隔分区中声明单独的表空间?

是否可以在间隔分区中声明单独的表空间?
EN

Stack Overflow用户
提问于 2019-02-13 11:37:33
回答 1查看 136关注 0票数 1

我有一个专用的数据表空间和一个专用的索引表空间。我将表迁移到间隔分区表,并在单独的表空间上重新构建索引。然后,新记录进入表,创建新的间隔分区。

我的问题是分区及其索引都是在数据专用表空间上创建的,而不是:

  • 数据专用表空间上的数据
  • 索引专用表空间上的索引。

是否有不需要持续维护的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2019-02-13 13:48:43

可以更改索引的默认属性。然后,新分区将使用您指定的分区:

代码语言:javascript
运行
复制
create tablespace table_data 
  datafile 'table_data.dbf' size 1M autoextend on;

create tablespace index_data 
  datafile 'index_data.dbf' size 1M autoextend on;

create table t (
  c1 int, c2 int
) partition by range ( c1 ) 
  interval ( 1 ) (
  partition p0 values less than ( 1 )
) tablespace table_data;

create index i on t ( c2 ) local;

insert into t values ( 1, 1 );
commit;

select partition_name, tablespace_name 
from   user_tab_partitions
where  table_name = 'T';

PARTITION_NAME   TABLESPACE_NAME   
P0               TABLE_DATA        
SYS_P622         TABLE_DATA     

select partition_name, tablespace_name  
from   user_ind_partitions
where  index_name = 'I';

PARTITION_NAME   TABLESPACE_NAME   
P0               TABLE_DATA        
SYS_P622         TABLE_DATA        

alter index i 
  modify default attributes tablespace index_data;

insert into t values ( 2, 2 );
commit;

select partition_name, tablespace_name 
from   user_tab_partitions
where  table_name = 'T';

PARTITION_NAME   TABLESPACE_NAME   
P0               TABLE_DATA        
SYS_P622         TABLE_DATA        
SYS_P623         TABLE_DATA     

select partition_name, tablespace_name  
from   user_ind_partitions
where  index_name = 'I';

PARTITION_NAME   TABLESPACE_NAME   
P0               TABLE_DATA        
SYS_P622         TABLE_DATA        
SYS_P623         INDEX_DATA    
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54669260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档