데이터베이스 개발자 질문과 답변 게시판
우선 속도가 너무 느립니다.
빨리 나올때가 3분
보통 12분 이상
어쩔때는 40분 넘어가두 데이터가 나오지 않을때도 있네요.
계산식도 넣어야 되는데요 .
이러다간 .. 하루종일 걸릴듯 싶은데요.
실행 계획 좀 봐주시고 조언 부탁드립니다.
Comment 6
-
ssunsori
2014.02.12 11:36
-
맨즈밤
2014.02.12 11:54
제일 상단에 걸린 top 10 이 테스트용인가요? 아님 리얼에도 쓰이는건가요? 여튼....
from TB_PUBLIC_LAND_MASTER as pm inner hash join
TB_REAL_MASTER as rm on ( rm.pnu = pm.PNU )
이부분을 아래와 같이 바꿔보고 해보심 결과가 어떻게 나오나요?
from (select top 10 * from TB_PUBLIC_LAND_MASTER ) as pm inner join
TB_REAL_MASTER as rm on ( rm.pnu = pm.PNU ) -
ssunsori
2014.02.12 13:00
지금 확인 했네요 지금 바로 해보겠습니다.
-
ssunsori
2014.02.12 13:09
알려주신 것 처럼 쿼리 변경 하고 실행 해 보았습니다.
일단 속도는 확실히 개선 되는것? 같았습니다. (1분 미만 ... )
그런데 .. 값이 않나오네요 .....
그리고 알려주신 쿼리에서 top 10을 빼고 " * " 만 놓았을때는 예전 처럼 계속 실행 중으로 만 나옵니다.
-
맨즈밤
2014.02.12 13:33
아...top 10이 리얼에서 쓰이는게 맞긴 맞나보네요...where 절도 인라인뷰안에 넣으시구요.
from (select top 10 * from TB_PUBLIC_LAND_MASTER where pm.ADDR like '%테스트' ) as pm inner join
TB_REAL_MASTER as rm on ( rm.pnu = pm.PNU )TB_PUBLIC_LAND_MASTER 의 데이터가 1200만건정도 되보이는데, 중간검색도 가능해야 하니 ADDR 에 전체텍스트인덱스를 주시구요.
그 다음에 TB_REAL_DEALER , TB_KAPA_MASTER 같은 테이블의 조인 방법을 다 더해서 조인연결하시지말고
on rd.ACC_YEAR=rm.ACC_YEAR and rd .SGG_CD= rm.SGG_CD ........... 요런식으로 변경하세요. 그리고 조인의 관계된 컬럼들을 복합인덱스를 만들어보시되 여의치 않으면..최소한 선택도가 좋은 컬럼이라도 인덱스를 만들어주시기 바랍니다.(테이블크기가 작다면 필요없습니다.) 가령 TB_REAL_DEALER 라면 ACC_YEAR,SGG_CD,acc_no 가 되겠네요.. 다른 테이블들도 마찬가지구요.
서버나 디비의 상황을 모르고 단지 쿼리만 보고 말씀드리는거니 테스트디비에서 먼저 해보시고 , 검토후 리얼에도 적용해보세요
-
ssunsori
2014.02.12 13:38
답변 감사합니다. 정말 감사합니다.
그리고 현제로써는 1200건 정도지만 각각의 테이블 마다 그 이상의 데이터가 현제도 계속 쌓여지고 있습니다.
거의 초당의 속도로요 ..
감사드립니다. 고민이 풀리는 기분이 드네요 감사합니다.
아 ! 그리고 책 추천 부탁합니다.
관리 쪽 책을 봐야 할지 ..
흠 ..
속도 ? 아니면 개선 가능 .. 관련 책이 있으면 알려주세요 .
오늘 퇴근하고 교보문고에 들려봐야 겠네요