我有如下的查询:
SELECT /*+ INDEX(A T1_IX01) INDEX(A T1_IX02) INDEX(B T2_IX01) INDEX(C T2_IX01)*/
*
FROM T1 A
JOIN T2 B
ON A.SOURCE = B.C1
JOIN T2 C
ON A.TARGET = C.C1;
和我需要使用从T1我与源列和另一与已映射的值与被索引以及T2的C1 TARGET列创建2个索引。
与当前的状态,但它只能使用从T1一个索引被规定为第一提示但不是的后一个。总之,我想用在同一个表中创建了两个不同的指标为两个独立的连接。
为什么,我应该如何解决这个问题,以获得更快的结果呢?
很显然,我已经给了暗示优化器使用哈希联接,而不是使用创建的索引,那么性能有所回升相当高。任何其他的想法,将不胜感激。
SELECT /*+ use_hash */
*
FROM T1 A
JOIN T2 B
ON A.SOURCE = B.C1
JOIN T2 C
ON A.TARGET = C.C1;