안녕하세요..
테이블 조회를 하는데요.. 이 테이블엔 key값이 없어서 인덱스를 잡아놨습니다.
인덱스는
[YEAR_CD] ASC,
[BALANCE] ASC,
[TEAM_CD] ASC 를 비고유 비클러스터로 생성했구요...
쿼리문은 아래와 같고요..
SELECT SUM(DTA.AMOUNT)
FROM DIST_TEAM_AS DTA
WHERE TEAM_CD IN ( SELECT TARGET_TEAM_CD
FROM UNIT_DIST_STANDARD
WHERE ISNULL(DELETE_FLAG, '') <> '1'
AND DIST_ID = ( SELECT DIST_ID
FROM DISTRIBUTION_STANDARD
WHERE ISNULL(DELETE_FLAG, '') <> '1'
AND DISTSTANDARD_ID = 'DS2014-001'
AND START_DATE LIKE '2014%' ))
AND BALANCE = '5'
AND YEAR_CD = '2014'
쿼리 결과값은 25000건 정도 이고 1초만에 나옵니다..
테이블의 총 데이터 갯수는 180000건 정도 이구요..
이 쿼리에서 BALANCE = '6'' 을 주고 조회하면 2분정도가 걸립니다.
데이터의 갯수는 동일하구요...
인덱스의 문제같은데 어떻게 해결해야할지 난감합니다...
첨부로 쿼리 예상실행계획 첨부합니다... 저걸봐도 뭘어떻게해야할지 모르겠네요;;;
Comment 1
-
웨퐁
2014.01.14 19:47
in쿼리를 없애고 join으로 속도를 향상시켰으나 인덱스 부분은 궁금하네요... 왜그런걸까요...