psu*_*sur 5 index oracle partitioning
我在 Oracle 11.2 中有两个表。首先是分区并具有本地索引(无前缀):
CREATE TABLE table1 (col1 INT, col2 INT)
PARTITION BY LIST(col1)
(
PARTITION p1 VALUES(1),
PARTITION p2 VALUES(2)
);
CREATE INDEX table1_index on table1(col2) LOCAL;
INSERT INTO table1 VALUES(1, 1);
INSERT INTO table1 VALUES(2, 1);
Run Code Online (Sandbox Code Playgroud)
第二个表类似,但没有分区和索引:
CREATE TABLE table2(col1 INT, col2 INT);
INSERT INTO table2 VALUES(1, 2);
Run Code Online (Sandbox Code Playgroud)
当我从交换分区的一个table1有table2那么这个分区索引将无法使用。为了避免这种情况,我可以使用UPDATE INDEXES,所以我这样做:
ALTER TABLE table1 EXCHANGE PARTITION p1
WITH TABLE table2 WITH VALIDATION UPDATE INDEXES;
Run Code Online (Sandbox Code Playgroud)
但UPDATE INDEXES似乎不起作用,因为当我检查该分区的索引状态时,它无法使用。
SELECT partition_name, status FROM user_ind_partitions
WHERE index_name = 'TABLE1_INDEX';
PARTITION_NAME STATUS
------------------------------ --------
P1 UNUSABLE
P2 USABLE
Run Code Online (Sandbox Code Playgroud)
对于GLOBAL索引,它按预期工作。
问题是:使用时UPDATE INDEXES对LOCAL索引有用EXCHANGE PARTITION吗?
| 归档时间: |
|
| 查看次数: |
3149 次 |
| 最近记录: |