안녕하세요.
오래만에 글 남깁니다.
일을 하다보니 궁금한 부분이 있어 이리저리 궁리하다. 질문 드립니다.
저희 회사 테이블 DDD가 있는데 , 이 테이블 인덱스는 관리회사, 카드번호 입니다. ( PK)
관리회사별로 데이터를 관리하고 있는데 , 한 관리회사당 많으면 10만건 , 적으면 2~3만 건의 데이터를
관리하고 있습니다.
문제가 발생한 시점은 ㅈ저희 팀에서 sqlloader를 이용하여, 대용량 insert를 할 수 있도록 프로그램 하나을
만든 시점입니다.
처음에는 빠르게 데이터가 insert 되어 사용하기 편했는데,
비지니스 로직이 이것저것 추가 되다 보니 , insert 한 정보를 토대로 프로시저등을 호출한다든가.
하면서 속도가 현저하게 느려졌다는 사실입니다.
처음 계약한 관리회사같은 경우 row 수가 없으니, 데이터가 없다고 판단하여, 풀 스켄을 타는 것으로 해석하고 있습니다.
10건 자료가 들어가는데 , 2시간 정도 걸려 튜닝 문의가 들어와 이리 저리 해본 결과 ,
통계자료가 올바르지 못해 최적화된 통계가 돌지 않아 문제가 발생하였고,
통계를 갱신해보고 돌리게 되면 , 2~3분으로 시간이 단축 되는 하는 것을 확인 할 수 있었습니다.
insert -> 통계갱신 -> 타 프로시저 호출 식으로
프로세스를 잡고자 하는데
insert될때마다 통계를 갱신한다는건 굉장한 무리수라 생각하기 때문에 참 곤란합니다. ( 프로그램에서 insert시 통계를
갱신하자);;
좋은 방법이 없을까요 ?
제머리로는 답이 안나오네요 .