和LOB段、OVERFLOW段类似,嵌套表的存储段也可以实现等同分区。
看一个简单的例子:
SQL> CREATE OR REPLACE TYPE T_ADDRESS IS TABLE OF VARCHAR2(100);
2 /
类型已创建。
SQL> CREATE TABLE T_PART_LOCAL
2 (ID NUMBER,
3 NAME VARCHAR2(30),
4 CREATE_DATE DATE,
5 ADDRESS T_ADDRESS)
6 NESTED TABLE ADDRESS LOCAL STORE AS ADDRESS_TAB
7 PARTITION BY RANGE (CREATE_DATE)
8 (PARTITION P1 VALUES LESS THAN (TO_DATE('2010-1', 'YYYY-MM')),
9 PARTITION P2 VALUES LESS THAN (TO_DATE('2010-2', 'YYYY-MM')));
表已创建。
SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE, PARTITION_NAME, TABLESPACE_NAME
2 FROM USER_SEGMENTS;
SEGMENT_NAME SEGMENT_TYPE PARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------ --------------- ---------------
ADDRESS_TAB TABLE PARTITION P2 USERS
T_PART_LOCAL TABLE PARTITION P1 USERS
ADDRESS_TAB TABLE PARTITION P1 USERS
T_PART_LOCAL TABLE PARTITION P2 USERS
SYS_C0011175 INDEX USERS
SYS_FK0000086750N00004$ INDEX USERS
已选择6行。
SQL> SELECT TABLE_NAME, INDEX_NAME, UNIQUENESS
2 FROM USER_INDEXES;
TABLE_NAME INDEX_NAME UNIQUENES
------------------------------ ------------------------------ ---------
T_PART_LOCAL SYS_C0011175 UNIQUE
ADDRESS_TAB SYS_FK0000086750N00004$ NONUNIQUE
可以看到和LOB段、OVERFLOW段的等同分区类似,NESTED TABLE也可以建立针对分区表的等同分区。
不同的是,NESTED TABLE的段也可以不已等同分区的方式存储,而是保存在一个单独的段中,只要将上面的LOCAL关键字替换为GLOBAL即可:
SQL> DROP TABLE T_PART_LOCAL PURGE;
表已删除。
SQL> CREATE TABLE T_PART_GLOBAL
2 (ID NUMBER,
3 NAME VARCHAR2(30),
4 CREATE_DATE DATE,
5 ADDRESS T_ADDRESS)
6 NESTED TABLE ADDRESS GLOBAL STORE AS ADDRESS_TAB
7 PARTITION BY RANGE (CREATE_DATE)
8 (PARTITION P1 VALUES LESS THAN (TO_DATE('2010-1', 'YYYY-MM')),
9 PARTITION P2 VALUES LESS THAN (TO_DATE('2010-2', 'YYYY-MM')));
表已创建。
SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE, PARTITION_NAME, TABLESPACE_NAME
2 FROM USER_SEGMENTS;
SEGMENT_NAME SEGMENT_TYPE PARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------ --------------- ---------------
ADDRESS_TAB NESTED TABLE USERS
T_PART_GLOBAL TABLE PARTITION P1 USERS
T_PART_GLOBAL TABLE PARTITION P2 USERS
SYS_C0011177 INDEX USERS
SYS_FK0000086759N00004$ INDEX USERS
可以明显的看到,使用GLOBAL关键字后,嵌套表不再以分区表的方式存储,而是变成单独的一张表,这种存储模式类似不分区的GLOBAL索引。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-628049/ ,如需转载,请注明出处,否则将追究法律责任。