小编psu*_*sur的帖子

UPDATE INDEXES 是否适用于本地索引?

我在 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)

当我从交换分区的一个table1table2那么这个分区索引将无法使用。为了避免这种情况,我可以使用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 …
Run Code Online (Sandbox Code Playgroud)

index oracle partitioning

5
推荐指数
1
解决办法
3149
查看次数

标签 统计

index ×1

oracle ×1

partitioning ×1