평소에는 10분이면 끝나던 배치작업이
몇일전부터 갑자기 2시간 이상씩 걸리더니
이제는 하루 왠종일 수행되는 현상이 발생하고있는데요..
SM66, SM51에서 보면 어떤 쿼리문에서 테이블을 시퀀셜 read 하는 부분에서 계속 돌고있는거같아요..
평소에 잘 돌았었고, 프로그램 바꾼것도 없고..
소스테이블에 데이타 건수가 갑자기 늘어난것도 아니고,
해당 테이블에 인덱스는 잘 만들어져 있고, 해당 프로그램 쿼리도 주변 사람들과 같이봐도 별 문제가 없어보여요.
BC에 문의해보면 무슨무슨 테이블 시퀀셜 READ 중이다라는 말 밖에 안해주는데요..
이렇게 영문도 모르게 백그라운드 작업이 너무 오래 걸리고 있을 때
SM66, SM51보면 다 알수있는 내용말고 또 BC에 어떤 도움을 받을수가 있나요?
이전에는 갑자기 프로그램이 오래 돌아도 대부분 원인을 금방 발견할 수 있는 인덱스, 비효율적 SQL문 등의
문제뿐이었는데, 이번거는 으째 BC의 도움이 필요할거같아요..ㅎㅎ;
BC 도움을 통하건 아니건간에 여러분들은 이런 경우 어떻게 해결하시는지 궁금합니다.
|
저의 경우는 debug 모드에서 속도가 오래 걸리는 부분을 찾아서...
그 부분을 인덱스가 제대로 타고 있는지 검사합니다.
주로 인덱스를 제대로 타던 것이 잘못타서 그렇게 되는 경우가 있더군요...
오라클 옵티마이저가 잘못 인덱스를 타게 하는건데..
이런 경우 저는 힌트를 썼습니다.
강제로 인덱스를 타게 했는데......암튼...
정상적인 경우였는데 이런 경우라면....힌트 쓰는 방법도 있습니다.