오라클 쿼리 그대로 뷰를 만들었는데 쿼리와 뷰의 PLAN이 달라요.
쿼리는 A 칼럼 INDEX를 RANGE SCAN 하지만 뷰는 FULL SCAN 합니다.
A 칼럼에 INDEX 가 있습니다. 원인이 뭘까요? 아래는 실제 쿼리는 아니구요.. 간단한 예제입니다.
VIEW :
CREATE OR REPLACE FORCE VIEW V_1( A, B, C, D )
AS
SELECT A, B, C , SUM(D)
FROM TABLE_1
GROUP BY A, B, C
==> 뷰를 SELECT * FROM V_1 WHERE A = '20130101' 한 경우 PLAN 시 TABLE_1을 FULL SCAN
QUERY :
SELECT A, B, C , SUM(D)
FROM TABLE_1
WHERE A = '20130101'
GROUP BY A, B, C
==> 쿼리를 PLAN 뜨면 TABLE_1의 INDEX를 RANGE SCAN