오라클 10G > 11G 마이그레이션 중 쿼리 느려진 현상 0 12 902

by 쥬비스 [SQL Query] [2017.09.22 17:24:50]


::질문 해결완료 정말 감사합니다.

본문 쿼리는 노출되기 원하지않아 삭제하였습니다.

 

해당 쿼리인데

10g에서 돌리면  1초~3초정도의 시간이 소모 되지만,

11g에서 돌리면 5~10분 정도의 시간이 소모 됩니다,

힌트를 사용하면 시간이 줄어들지만 힌트를 사용하면 안좋다고 들어서, 여기서 저 해당 쿼리를 어떻게 튜닝을 해야할지 모르겟습니다.

 

by jkson [2017.09.22 17:46:36]

10g 실행계획에서는 lips는 안 보이는데

동일한 쿼리 맞나요?


by 쥬비스 [2017.09.22 17:52:58]

넵 동일한 쿼리 맞습니다.


by jkson [2017.09.22 17:58:43]

그렇다면 테이블 간에 외래키 제약 같은 게 있다가 없어진 것 아닌가요?

--------------------------------------------------------------------------------

외래키가 있을 때 특수한 경우 테이블을 탐색하지 않는 경우가 있어 말씀 드린 건데..

아무래도 10g에서는 db_link쪽 테이블의 실행계획을 안 보여주는 게 아닐까 싶네요;;

실제로 그랬었는지 기억이 안 나네요ㅎㅎ


by 쥬비스 [2017.09.22 18:05:04]

그건 잘 모르겠는데.. 없는거같아요


by jkson [2017.09.22 18:07:59]
--삭제

 


by 쥬비스 [2017.09.22 18:14:11]

rowid에서 열의정의땜에 aa.를 붙여주엇는데 오래 걸리네요 마찬가지로

 


by jkson [2017.09.22 18:24:42]

실행 계획이 바뀌지 않았나요?

힌트 사용하면 빨라졌다는 건 어떤 힌트 쓰신 건지..


by 쥬비스 [2017.09.22 18:28:58]

/*+ ORDERED*/

힌트는 이것을 사용하니

select 하는데 2초 정도 걸리네요 7분에서


by jkson [2017.09.22 18:32:31]

아 제가 바보짓했네요. ROWID가 아니라 ROWNUM입니다;;


by 쥬비스 [2017.09.22 18:36:41]

오.. 결과가 2초만에 출력 되었습니다.

다른 것들도 한 번 봐야겠네요 감사합니다

그런데 rownum을 하는이유가 컬럼 조인 순서를 제대로 맞춰줘서..음.?

아 그리고 질문에 남겨주신 본문 쿼리내용은 수정해서 없애주실수 잇을까요? 죄송합니다 번거롭게해드려서 ㅠ


by jkson [2017.09.22 18:39:35]

아무래도 10G에서 인라인뷰 처리 후 마스터와 조인하는데 11G에서는 인라인뷰가 해체되면서 발생한 문제로 판단되어

ROWNUM을 붙여준 것이고요.(뷰 해체 방지) 다른 쿼리도 똑같이 빨라진다는 보장은 없어요.

오히려 11G에서 빨라진 쿼리도 있을 겁니다.

그리고 힌트를 무조건 사용하지 말라는 게 아니라..

제대로 알지 못하는 힌트를 남용하면 오히려 성능이 나빠질 수 있어서 그런 말이 있는 것이고..

실행계획이 의도대로 만들어지지 않는다면 적당하고 알맞은 힌트는 사용해야 한다고 생각합니다.


by 쥬비스 [2017.09.22 18:42:48]

아하 공부할 것이 더 많아졌네요.. 이런것도 알게되고 감사합니다.

혹시 위에 질문에 남겨주신 쿼리는 삭제 혹은 수정이 가능할까요?? 

답변채택을 누르면 http오류 어쩌고떠서 집에가서 눌르겟습니다

감사합니다

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