쿼리에 조건절에서 LIKE검색을 하는데 쿼리 속도가 늦습니다
우편번호 형식으로 되어 있는 데이타를 조회를 해야합니다
A테이블
=====================================
PK_ID | name | AddrCode
----------------------------------------------
1 AAA 012023015
2 BBBBB 011035
3 CCCC 025
B테이블
==================================
AddrCode | JusoAddr
-------------------------------------------
010023015 경기도 안양시
011035045 경기도 군포시
025010036 서울시 서초구
010035089 서울시 구로동
025045036 서울시 대림동
두개의 테이블을 조인을 해서 아래와 같이 표시해야합니다
1 AAA 경기도 안양시
2 BBBBB 경기도 군포시
3 CCC 서울시 서초구
3 CCC 서울시 대림동
Like를 거니까 속도가 늦어요
실제 테이블 필드는 많습니다
Like나 Left를 하니까 속도가 너무 느려서 다른 방법이 잇는지 알고 싶습니다
Comment 4
-
이리
2017.07.13 13:39
-
문상연
2017.07.13 17:23
like는 뒤에다가 'xxx%' 걸엇습니다
실행계획은 어디서 보나요?
SQL Server Management Studio를 사용하고 있습니다
-
이리
2017.07.13 17:55
상단에 보시면 실제실행계획포함 이라는 아이콘이 있을겁니다.
혹은 Ctrl + M 단축키를 한번 눌러주고 실행하셔도 됩니다.
-
문상연
2017.07.13 18:11
Select * From ( Select ROW_NUMBER() OVER (ORDER BY editDate DESC ) AS RowNum,
팀장님이 쿼리를 외부로 유출하지 말라고 해서 일부분만 올립니다
그림을 보시면 아시겠지만 ORDER BY editDate DESC 가 비용(24%)이 제일 많이 잡아먹습니다
당연히 editDate 내림차순으로 인덱스가 걸린 상태입니다
그런데 여기에서 왜 비용이 제일 많이 잡아먹나요?
LIKE를 어떻게 거셨는지요? 컬럼 앞에 %를 사용하셨다면 인덱스를 사용하지 못합니다.
쿼리문과 실행계획을 올려주시면 정확한 조언을 받으실 수 있을 거 같습니다.