>>박경민 님께서 쓰시길<<
:: oracle에서 특정한 조건을 만족시키는 row의 개수를 원하는 것이 아니라 존재성 유무만 확인할려고 그
:: 러는데 어떻게 하면 될까요 지금 쓰는 방법은 count를 이용해서 count가 1보다 크면 존재한다고 판단하
:: 고 있는데 테이블에 데이타가 200,000개 가까이 있는 상황에서 너무 비효율적인 것 같습니다. 그래서
:: 단순히 존재성 유무만 확인하는 방법이 필요한데 뭐 없을 까요/ exists 를 이용하면 될 것 같은데 exist
:: s는 subquery로만 쓰여서 원하는 역할을 못할 것 같습니다. 어떻게 하면 될지... 조언 부탁드립니다.
select decode(count(empno),0,'비존재','존재') existYN
from emp a
where a.empno = '1111'
and exists( select *
from emp b
where b.empno = a.empno);
쓰셔도 인덱스만 탄다면 속도문제는 그리 크지않을것 같군요
저도 120,000건 데이타에서 테스트해보니 인덱스를 타면 0.5초이내에
나오더군요 쩝.
스켄결과
SELECT STATEMENT
SORT(AGGREGATE)
INDEX(UNIQUE SCAN)--EMP_PK--UNIQUE <--인덱스명은 제가조작
INDEX(UNIQUE SCAN)--EMP_PK--UNIQUE
소요시간 00:00:00.44
|