안녕하세요. 2시간 정도 고민해도 떠오르질 않아 문의드리게 되었습니다.
NL JOIN에서 후행테이블의 컬럼 ORDER BY가 있으면 SORT 생략이 불가능할까요?
제 생각에는 SORT가 생략될 법 한데 생략되지 않습니다
CREATE TABLE ORA_SQL_TEST.OT(COL1 NUMBER, COL2 NUMBER, COL3 NUMBER, COL4 NUMBER);
CREATE INDEX IDX_OT ON OT(COL1, COL2)
CREATE TABLE INN(C1 NUMBER, C2 NUMBER, C3 NUMBER, C4 NUMBER);
CREATE INDEX IDX_INN ON OT(C1, C2)
-- SORT ORDER BY 생략 가능
SELECT /*+ ORDERED USE_NL(INN) INDEX(OT) INDEX(INN) */ OT.COL1,OT.COL2,INN.C1
FROM OT, INN
WHERE OT.COL1 = 3
AND OT.COL2 > 5
AND OT.COL2 = INN.C1
ORDER BY OT.COL1,OT.COL2;
-- SORT ORDER BY 생략 불가
SELECT /*+ ORDERED USE_NL(INN) INDEX(OT) INDEX(INN) */ OT.COL1,OT.COL2,INN.C1
FROM OT, INN
WHERE OT.COL1 = 3
AND OT.COL2 > 5
AND OT.COL2 = INN.C1
ORDER BY OT.COL1,OT.COL2,INN.C1;