디비링크와 로컬에서 쿼리를 실행했을때 속도차이가 너무 많이 납니다. 0 1 1,668

by 아이디사용중 [SQL Query] 디비링크 [2017.03.10 16:24:39]


월별 집계를 가져오는 쿼리가 있습니다. 

1년치를 돌리면 컬럼이 10개인 12줄의 결과값이 나오는 쿼리입니다. 

동일한 쿼리를 가지고 원격지 DB에 바로 붙어서 실행하는 것과 디비링크된 디비에서 실행할 때 속도차이가 10배 이상 납니다. 

특히 기간이 길어질수록 너무 차이가 나서 1년치를 돌리기 힘듭니다.

 

원격지에 붙어서 돌리면 1년치 돌릴 경우 20초 이내로 결과값을 주지만

디비링크를 통해 돌리면 4~5분 정도 걸립니다. 

 

디비링크를 거는 디비와 조인하는 테이블이 없고 모든 쿼리는 디비링크가 되어 있는 디비에서 수행됩니다.

검색해보니 driving_site 힌트를 사용하라고 하는데 이 경우는 로컬디비와 디비링크된 디비와 조인이 되었을때 효과가 있고

힌트를 일일이 걸기에는 쿼리가 너무 깁니다.

 

이럴경우 어떤 방법이 좋을까요?

원격지에 view를 생성할 권한이 있긴 한데 view나 mview를 통하면 좀 빨라질까요?

 

아니면 다른 해결점이 있을까요?

by drakula [2017.03.13 10:49:51]

PLAN이 어떻게 되는지 확인해야 합니다~

그리고 MVIEW를(원격지의 데이터를 만들어서 가져온다는거죠? 원격지 + 로컬을 조인해서 만든다는게 아니죠?) 이용하면 빨라지긴 하겠지만, DBA들은 싫어 합니다.

또다른 관리 포인트가 생기게 되니깐요.

 

DB LINK 걸면 SCN Bump UP등 여러가지 이슈들이 생기게 되는데,

해당 테이블만 MVIEW로 만들어서, 가져와서 조인하거나,

굳이, 실시간 연동이 필요 없다면, 해당 데이터를 BATCH로 Sync 맞춰서 가지고 오는 방법을 권해 드립니다.

업무마다 특성이 달라서..

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입