마스터테이블 a, 코드테이블 c 가 있습니다.
a 테이블에 컬럼이 a1, a2, a3, ac1, ac2, ac3, ac4, ac5, ac6 가 있습니다,.
ac1, ac2, ac3, ac4, ac5, ac6 컬럼은 코드값입니다.
코드테이블인 c 테이블에는 컬럼이 cid, cname, cpid 입니다.
따라서 마스터테이블을 조회하고자 할 경우
select
a1, a2, a3, ac1, ac2, ac3, ac4, ac5, ac6
, c1.cname
, c2.cname
, c3.cname
, c4.cname
, c5.cname
, c6.cname
from a, c c1, c c2, c c3, c c4, c c5, c c6
where
and c1.pid = 'A'
and c2.pid = 'B'
and c3.pid = 'C'
and c4.pid = 'D'
and c5.pid = 'E'
and c6.pid = 'F'
and a.ac1 = c1.cid(+)
and a.ac2 = c2.cid(+)
and a.ac3 = c3.cid(+)
and a.ac4 = c4.cid(+)
and a.ac5 = c5.cid(+)
and a.ac6 = c6.cid(+)
이런 형태로 사용하고 있습니다.
최적화된 쿼리를 사용하고 싶습니다.
코드테이블을 한번만 읽어서 조인한다거나 하는...
마스터테이블은 대략 천만건 정도 되고 코드테이블은 3천건 정도 됩니다.
위의 형태는 파일 I/O 쓰기 오류가 발생 합니다.
고수님들의 특별한 조언 부탁드립니다.
|