阅读权限100
最后登录2023-7-19
在线时间85 小时
积分3490
注册时间2014-8-14
精华0
主题22
UID20256
帖子505
金币2933
威望0
贡献0
技术2
活跃435
分区版主
- 贡献
- 0
- 技术
- 2
- 活跃
- 435
- 在线时间
- 85 小时
|
发表于 2014-12-24 17:37:34
|
显示全部楼层
分区表和表空间的对应有两种方式:
1:所有的分区在一个表空间中
2:每一个分区对应一个表空间
因此在分区表中 整个大表成了一个逻辑性的概念。数据的存储是按分区来划分的。
所以在当表有了子分区表 ,一个分区当有子分区时,这个分区就成了逻辑性概念。数据的存储是按子分区划分的。
所以整个表所有的子分区对应一个表空间,也可以每一个子分区对应一个表空间。此时数据的存储划分是按子分区的条件进行划分的。 下面的例子是一个子分区对应一个表空间:
create tablespace tbs1 datafile '/u01/app/oracle/oradata/target/tbs1_1_1.dbf' size 10m;
create tablespace tbs2 datafile '/u01/app/oracle/oradata/target/tbs2_1_1.dbf' size 10m;
create table AGG_BILL_BY_CITY (
HOUR_ID INTEGER not null,
CITY_ID INTEGER not null,
MONTH_ID INTEGER,
CALL_TYPE_ID INTEGER not null,
DEAL_ID INTEGER not null,
OPERATOR_ID INTEGER not null,
FEE_TYPE_ID INTEGER not null,
ROAM_TYPE_ID INTEGER not null,
CALL_FEE NUMBER,
LONG_FEE NUMBER,
CALL_NUM INTEGER,
BILL_DURATION NUMBER,
CALL_DURATION NUMBER,
GPRS_IN NUMBER,
GPRS_OUT NUMBER,
LOAD_TIME DATE default sysdate,
SUM_NUM NUMBER
)
partition by range(HOUR_ID)
subpartition by
hash(CITY_ID, CALL_TYPE_ID, DEAL_ID, OPERATOR_ID, FEE_TYPE_ID, ROAM_TYPE_ID)
subpartitions 2 store in(TBS1,TBS2)
(
partition P2014010100 values less than(2014010300),
partition P2014010400 values less than(2014010500)
);
select table_name,partition_name,subpartition_name,tablespace_name
from user_tab_subpartitions;
TABLE_NAME PARTITION_NAME SUBPARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
AGG_BILL_BY_CITY P2014010400 SYS_SUBP63 TBS1
AGG_BILL_BY_CITY P2014010100 SYS_SUBP61 TBS1
AGG_BILL_BY_CITY P2014010400 SYS_SUBP64 TBS2
AGG_BILL_BY_CITY P2014010100 SYS_SUBP62 TBS2
或者
create table AGG_BILL_BY_CITY1 (
HOUR_ID INTEGER not null,
CITY_ID INTEGER not null,
MONTH_ID INTEGER,
CALL_TYPE_ID INTEGER not null,
DEAL_ID INTEGER not null,
OPERATOR_ID INTEGER not null,
FEE_TYPE_ID INTEGER not null,
ROAM_TYPE_ID INTEGER not null,
CALL_FEE NUMBER,
LONG_FEE NUMBER,
CALL_NUM INTEGER,
BILL_DURATION NUMBER,
CALL_DURATION NUMBER,
GPRS_IN NUMBER,
GPRS_OUT NUMBER,
LOAD_TIME DATE default sysdate,
SUM_NUM NUMBER
)
partition by range(HOUR_ID)
subpartition by
hash(CITY_ID, CALL_TYPE_ID, DEAL_ID, OPERATOR_ID, FEE_TYPE_ID, ROAM_TYPE_ID)
(
partition P2014010100 values less than(2014010300) tablespace TBS1,
partition P2014010400 values less than(2014010500) tablespace TBS2
);
TABLE_NAME PARTITION_NAME SUBPARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
AGG_BILL_BY_CITY1 P2014010100 SYS_SUBP65 TBS1
AGG_BILL_BY_CITY1 P2014010400 SYS_SUBP66 TBS2
|
|