DB Link 테이블 select 시 속도 문제 0 5 3,392

by 박기용 [2016.05.10 13:58:59]


select
     substr(DEAL_YMD, 3, 2)||'.'||substr(DEAL_YMD, 5, 2)||'.'||substr(DEAL_YMD, 7, 2) as DEAL_YMD
     ,decode(BLDG_USE_CD, '15', ETC_ADDR_BLDGNM , '('||BOBN||'-'||'**)') as BLDGNM
     ,trim (TO_CHAR (BLDG_AREA, '999,999,990')) as ALL_AREA
     ,trim (TO_CHAR (DEPOSIT_AMT / 10000, '999,999,999,999,990')) as SUM_AMT
 from
 (
     select
          DEAL_YMD
         ,ACC_YMD
         ,BLDG_USE_CD
         ,ETC_ADDR_BLDGNM
         ,BOBN
         ,BLDG_AREA
         ,DEPOSIT_AMT
     from
     (
         select 
             /*+                     
                parallel(A, 8)  full(A)
             */             
             DEAL_YMD
             ,ACC_YMD
             ,BLDG_USE_CD
             ,ETC_ADDR_BLDGNM
             ,BOBN
             ,BLDG_AREA
             ,DEPOSIT_AMT
         from    전월세내역@RTMS_LN A
         where DEPOSIT_AMT > 0
         and ACC_YMD < to_char(sysdate, 'yyyymmdd')
     )
     order by 접수일 desc, 계약일 desc
 )
 where rownum <= 5

 

 

요런식으로 5개의 항목만 출력되게 하는 쿼리인데 접수일과 그리고 계약일로 sort하면 속도가 1초이내지만 약 0.6초? 정도로 조회가 됩니다.

 

결과를 메인화면에 뿌릴꺼라서 속도가 좀더 빨랐으면 한데

힌트를 줘봤거든요

제가 알고 있는건 paralle로 병렬처리하는거와 DRIVING_SITE 두가지를 알고 있습니다

 

1, 둘 중 좀더 빠른속도를 보일 수 있는건 어떤걸까요?

 

2. 다른 방법은 없을지요?

 

 

둘다 테스트 해봤으나 별반 차이가 없어 체감상 빠른 속도를 보이는 힌트를 현재 적용중입니다..;

 

추가로 인덱스 여부는 확인할 수 없는 상태입니다 ㅠ

by 와일드키드 [2016.05.10 14:30:44]

1. "db_link쿼리는 remote사이트에서 쿼리를 수행하도록 유도해라.."

라고 튜닝 전문가에게 들었습니다.

즉, parallel보다는 driving_site 힌트가 적합 합니다.

2.다른방법? => 없을 것 같은데요?


by 마농 [2016.05.10 14:36:48]

페이징 쿼리 효율을 극대화 하려면

정렬항목에 대한 인덱스가 있어야 하겠죠.


by 박기용 [2016.05.10 16:18:57]

답변감사합니다.

 

일단 인덱스가 역시 가장 걱정거리였으나 담당자들의 미숙함(?)으로 해당문제에 대해 이해를 하지 못하여

우선 driving_site로 다시 수정해보았습니다.

아직은 역시 속도는 해결되지 못하였으나 답변감사합니다.


by 마농 [2016.05.10 16:26:26]

단순 속도 비교로 알 수 없다면 실행계획도 비교해 보세요.
해당 테이블의 인덱스 정보도 확인해 보세요.

SELECT * FROM user_ind_columns@rtms_ln WHERE table_name = '전월세내역';


by 박기용 [2016.05.11 14:59:54]

답변감사합니다

 

주신쿼리로 인덱스정보를 보니 sort 기준으로 사용할 컬럼은 인덱싱이 되어 있지 않아

의미가 없었습니다 ㅠ

 

 

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