本地分区索引如何确定表空间(2)
2024-07-21 02:38:03
供稿:网友
表已创建。
SQL> CREATE INDEX IND_TEST_1 ON TEST (ID) LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST_2 ON TEST (NAME)
2 TABLESPACE INDX LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST1_1 ON TEST1 (ID) LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST1_2 ON TEST1 (NAME)
2 TABLESPACE INDX LOCAL;
索引已创建。
SQL> ALTER TABLE TEST ADD PARTITION P2 VALUES LESS THAN (200);
表已更改。
SQL> ALTER TABLE TEST1 ADD PARTITION P2 VALUES LESS THAN (200);
表已更改。
SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TAB_PARTITIONS
2 WHERE PARTITION_NAME = 'P2';
TABLE_NAME TABLESPACE_NAME
-------------------- --------------------
TEST USERS
TEST1 YANGTK
SQL> SELECT TABLE_NAME, A.INDEX_NAME, A.TABLESPACE_NAME
2 FROM USER_IND_PARTITIONS A, USER_INDEXES B
3 WHERE PARTITION_NAME = 'P2'
4 AND A.INDEX_NAME = B.INDEX_NAME
5 ORDER BY 1, 2;
TABLE_NAME INDEX_NAME TABLESPACE_NAME
-------------------- -------------------- --------------------
TEST IND_TEST_1 USERS
TEST IND_TEST_2 INDX
TEST1 IND_TEST1_1 YANGTK
TEST1 IND_TEST1_2 INDX
SQL> DROP TABLE TEST;
表已丢弃。
SQL> DROP TABLE TEST1;
表已丢弃。
例四:复合分区索引
SQL> SELECT DEFAULT_TABLESPACE FROM USER_USERS;
DEFAULT_TABLESPACE
------------------------------
YANGTK
SQL> CREATE TABLE TEST (ID NUMBER, TIME DATE, STATE VARCHAR2(10))
2 TABLESPACE TOOLS
3 PARTITION BY RANGE (TIME) SUBPARTITION BY LIST (STATE)
4 (
5 PARTITION P1 VALUES LESS THAN (TO_DATE('2004-1-1', 'YYYY-MM-DD'))
6 TABLESPACE USERS
7 (
8 SUBPARTITION SP1 VALUES ('BJ')
9 TABLESPACE TEST
10 )
11 )
12 ;
表已创建。
SQL> CREATE TABLE TEST1 (ID NUMBER, TIME DATE, STATE VARCHAR2(10))
2 TABLESPACE TOOLS
3 PARTITION BY RANGE (TIME) SUBPARTITION BY LIST (STATE)
4 (
5 PARTITION P1 VALUES LESS THAN (TO_DATE('2004-1-1', 'YYYY-MM-DD'))
6 (
7 SUBPARTITION SP1 VALUES ('BJ')
8 TABLESPACE TEST
9 )
10 )
11 ;
表已创建。
SQL> CREATE TABLE TEST2 (ID NUMBER, TIME DATE, STATE VARCHAR2(10))
2 PARTITION BY RANGE (TIME) SUBPARTITION BY LIST (STATE)
3 (
4 PARTITION P1 VALUES LESS THAN (TO_DATE('2004-1-1', 'YYYY-MM-DD'))
5 (
6 SUBPARTITION SP1 VALUES ('BJ')
7 TABLESPACE TEST
8 )
9 )
10 ;
表已创建。
SQL> CREATE INDEX IND_TEST_1 ON TEST (ID) LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST_2 ON TEST (TIME)
2 TABLESPACE INDX LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST_3 ON TEST (STATE)
2 LOCAL (PARTITION P1 TABLESPACE SYSTEM)
3 TABLESPACE INDX;
索引已创建。
SQL> CREATE INDEX IND_TEST1_1 ON TEST1 (ID) LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST1_2 ON TEST1 (TIME)
2 TABLESPACE INDX LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST1_3 ON TEST1 (STATE)
2 LOCAL (PARTITION P1 TABLESPACE SYSTEM)
3 TABLESPACE INDX;
索引已创建。
SQL> CREATE INDEX IND_TEST2_1 ON TEST2 (ID) LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST2_2 ON TEST2 (TIME)
2 TABLESPACE INDX LOCAL;
索引已创建。
SQL> CREATE INDEX IND_TEST2_3 ON TEST2 (STATE)
2 LOCAL (PARTITION P1 TABLESPACE SYSTEM)
3 TABLESPACE INDX;
索引已创建。
SQL> ALTER TABLE TEST MODIFY PARTITION P1 ADD SUBPARTITION SP2 VALUES ('SH');
表已更改。
SQL> ALTER TABLE TEST1 MODIFY PARTITION P1 ADD SUBPARTITION SP2 VALUES ('SH');
表已更改。
SQL> ALTER TABLE TEST2 MODIFY PARTITION P1 ADD SUBPARTITION SP2 VALUES ('SH');
表已更改。
SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TAB_SUBPARTITIONS
2 WHERE SUBPARTITION_NAME = 'SP2';
TABLE_NAME TABLESPACE_NAME
-------------------- ------------------------------
TEST USERS
TEST1 TOOLS
TEST2 YANGTK
SQL> SELECT TABLE_NAME, A.INDEX_NAME, A.TABLESPACE_NAME
2 FROM USER_IND_SUBPARTITIONS A, USER_INDEXES B
3 WHERE SUBPARTITION_NAME = 'SP2'
4 AND A.INDEX_NAME = B.INDEX_NAME
5 ORDER BY 1, 2;
TABLE_NAME INDEX_NAME TABLESPACE_NAME
-------------------- -------------------- -----------------------
TEST IND_TEST_1 USERS
TEST IND_TEST_2 INDX
TEST IND_TEST_3 SYSTEM
TEST1 IND_TEST1_1 TOOLS
TEST1 IND_TEST1_2 INDX
TEST1 IND_TEST1_3 SYSTEM
TEST2 IND_TEST2_1 YANGTK
TEST2 IND_TEST2_2 INDX
TEST2 IND_TEST2_3 SYSTEM
已选择9行。