这是一个表a,表a的主键是a1\u id和a2\u id。为了避免父表a1\u id的表满扫描,创建了一个索引。
/* The status of the index is as follows. */
A_PK_IDX | UNIQUE | A1_ID | POSITION 1
A_PK_IDX | UNIQUE | A2_ID | POSITION 2
PARENT_A1_ID_IDX | NONUNIQUE | PARENT_A1_ID | POSITION 1
我在oracle11g中执行这个查询。在这个执行计划中,父索引的索引和索引的主键唯一索引分别执行快速全扫描。
SELECT A1_ID, A2_ID
FROM A
WHERE A2_ID = :A2_ID
START WITH A2_ID = :A2_ID AND
A1_ID IN (
SELECT A1_ID
FROM A
WHERE A2_ID = :A2_ID /* Conditional clause of the value I want */
)
CONNECT BY PRIOR A1_ID = PARENT_A1_ID
我用提示改变快速全扫描范围扫描,但它没有工作。
如何将此执行计划更改为范围扫描?
暂无答案!
目前还没有任何答案,快来回答吧!