Update statistics and OPTCOMPIND 설명
원본홈페이지 : 딧세님 홈페이지 (http://informix.we.ro/)
`
update statistics는 옵티마이저가 참고하는 정보를 갱신해주는 쿼리입니다.
보통 data변화가 크거나 큰 index 생성/삭제, spl 작성후엔 돌려주시는게 좋습니다.
주기적으로 cron으로 매일 밤에 돌리는데도 많고요.
update statistics는 레벨이 3가지가 있습니다. low,medieum,high
default는 low입니다.
medieum과 high는 분산정보까지 갱신합니다.
그러나 시간이 low에 비해 훨 많이 걸리므로 그냥 low로만 돌려도 괜찮습니다.
이 작업은 되도록 업무시간을 피하시고 사용자가 없을때 하시기 바랍니다.
data를 모두 full scan해서 분석하고 내부적으로 lock를 발생도 하기에 서비스 시간에 돌릴시 속도저하나 lock 에러가 뜰수도 있습니다.
update statistics; (db 전체)
update statistics for table table이름; (특정 테이블만)
update statistics for procedure proc이름; (특정 SPL만)
그리고 onconfig 보시면 OPTCOMPIND라는 값이 있습니다.
이값이 2이면 옵티마이져가 최대한 cost가 적은 쪽으로 쿼리플랜을 타라는 옵션입니다.
2일 경우는 static 정보갱신의 중요성이 더 커지겠죠?
그러나 0일 경우는 왠만하면 다 index 타는쪽으로 유도하는겁니다.
(static 정보 갱신이 안되어 있으면 안탈수도 있음)
보통 OLTP 환경에선 0, DSS (대용량 데이타 조회위주시스템)인 경우는 2로 세팅하시길 바랍니다.
그리고 set explain on;를 실행하시면 쿼리플랜이 풀스캔하냐, 인덱스를 타냐..
인텍스를 탈때 어떤걸 먼저타냐.. 그런걸 볼수 있습니다.
아까 보내주신 쿼리 플랜중 REMOTE PATH라고 나온건 타서버쪽이여서 index가 타는지 풀스캔하는지 까지는 나오지 않습니다.
확인하는 방법은 REMOTE쪽 서버에서 직접 explain를 떠서 확인하시면 됩니다.
그럼 수고하세요..
|