정말 속상한 view의 속도.... 0 3 5,136

by 꾼이되자 [2009.05.29 18:56:43]


안녕하세요... ㅠㅠ

아주 속도가 기막힐 정도로 느린 view가 하나 있습니다.

제가 오라클ERP 회계업무를 맡고 있는데요...

전표가 여기저기 모듈에서 합쳐지므로 대량의 데이터가 있습니다...

문제는 합쳐지는 테이블에는 각 모듈의 정보는 없고 금액과 소수의 컬럼만.... (총계정원장은 금액위주라...)

문제는 전표조회하는 view가 만들어져 있는데요... 각 모듈의 정보를 가져와야 하므로 각 모듈에 따라 Union all을 해서 만들었습니다.

중복되서 읽는 테이블은 없구요...

데이터 량은 한 모듈당 대략 1~2백만건 이구요 자주 사용하는 모듈은 4천만건이 넘구요...ㅠㅠ

Hint절 하나 없구요...(제가 만든건 아니라...)

실행계획이나 trace뜰라 해도 어마어마 해서 엄두도 안납니다...

손대기도 싫은 view.....ㅠㅠ

어떻게 해야 할지 몰라서 그냥 넋두리합니다.

정녕 view안에 union all로 걸려있는 sql문을 하나하나 hint나 정확한 조건절을 이용해서 다 수정해야 할까요??

만약 그렇게 한다고 해도... view를 또 조회하는 조건절이 틀린데.... view를 조회할때 hint절을 못할꺼 같은데... union all이라....

요놈 하나만 잡으면 일하는데 참 조을텐데....

항상 마감이면 이놈때문에 골머리를 썩네요......

고수님들의 경험이나 위로좀 해주세요....*^^*

외부 DB컨설턴트를 받아봐야 할까요??

국내 탑클래스 DB컨설턴팅 업체 말고 저렴하면서 실력있는 컨설턴팅 업체아시면 소개해주셔도 좋습니다. ^^

아~~~ 다시 쏙썩으로 가야겠죠?? ㅋㅋㅋ

즐거운 주말 보내시고~~ 6월엔 슬프지 않고 좋은일만 있었으면 좋겠습니다...

 

 

by 무우다리 [2009.06.01 16:11:21]
Global Hint를 이용해 보세요. 해당 뷰를 이용하는 쿼리에서 Query Block 레벨로 힌트를 사용하는 게 좋을 거 같네요.
또 하나는 관련된 쿼리에서 모두 그 뷰를 꼭 사용해야 하는지도 생각해 볼 여지가 있네요. 어떤 쿼리는 뷰에 선언된 테이블 중 일부만 필요할 수도 있지 않을까요?

by 강정식 [2009.06.01 16:16:43]
http://www.gurubee.net/article/20304
여기 글들을 참고해 보세요

by 꾼이되자 [2009.06.02 13:56:45]
좋은 내용 감사합니다..
무우다리님 강정식님 모두 확인후에 좋은 VIEW를 만들어 보도록 하겠습니다
감사합니다 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입