현재 사용중인 ECC 버전에서는 자산관련 테이블 5개를 VIEW로 만들어서 사용중입니다.
사용하는 방식은 FOR ALL ENTRIES IN 구분을 이용해서 자산번호 5개 정도 들어 있는
인터널 테이블을 조건으로 넣고 있습니다.
기존 ECC 에서는 해당 구분이 실행되는데 5초 이내로 결과가 나옵니다.
(물론 초기 실행시에는 시간이 좀더 걸리지만 반복 실행할 경우 거의 바로 조회 됩니다.)
하지만 동일한 데이터를 가지고 PCE 서버에서 실행시킬 경우 최종 결과가 나올때 까지 1500초 이상
소요되고 있습니다.(반복 실행해도 실행 시간이 줄어들지 않습니다.)
디버깅으로 해당 구분에서 시간이 오래 걸리는것 까지는 파악 했습니다.
문제는 해당 SE11 에서 해당 VIEW를 동일한 자산번호를 넣고 조회를 하면 바로 조회가 됩니다.
단지 프로그램 내부에서 FOR ALL ENTRIES IN 구분을 사용할 경우에만 늦어 지는듯 합니다.
구문을 LOOP 문으로 변경하고 SELECT * ENDSELECT 로 바꾸어서 실행을 해 보니
결과가 바로 조회 됩니다.
혹시 PCE 버전에서 FOR ALL ENTRIES IN 구분을 사용해서 속도가 늦어지는 것일까요?
아니면 다른곳에 세팅 문제로 발생하는 현상일까요?
for all entires 에 사용된 인터널 테이블이 비어있으면, 모든 데이터를 가져오기 때문에 성능 문제가 발생할 수 있어요.
인터널 테이블에 데이터가 있는지 확인해보세요.