상황설명 : 레포트 프로그램을 짰는데,
S_WERKS 는 PLANT필드로서 서울,대구,부산,광주 4개가 있습니다.
당연히 서울이 자료가 가장 많구요.
SELECT-OPTION 이므로, 빈값을 넣으면 당연히
서울,대구,부산,광주 의 모든 자료가 나오겠죠.
근데, 전체로 조회했을때는 5~6분정도면 나오는 것이
서울만 입력해서 실행을 하면 1시간 정도 있다가 TIMEOUT메시지가 뜨면서 DUMP화면으로 바뀝니다.
차라리 서울만 조회했을때 5~6분걸리고 전체로 조회할때 TIMEOUT 메시지가 뜨면 이해라고 하겟는데,
그 반대가 되니 이해가 안되서 질문드립니다.
전체보다 일부를 조회할때 에러가 난다니....
참으로 요상한 일입니다.
아래는 레포트프로그램에서 가장 핵심적인 내용으로서, 자료를 GET_DATA하는 부분입니다.
아래내용을 참고하시어 노하우 및 도움을 부탁드립니다~~
SELECT C~VWERK AS WERKS
A~SPTAG
MAX( B~NIELS ) AS NIELS "사업장구분
MAX( B~KUKLA ) AS KUKLA "관계사구분
MAX( C~KALKS ) AS KALKS "직거래구분
A~KUNNR
MAX( C~KVGR4 ) AS KVGR4 "결산일
A~PSTYV
A~ZZPRODH3 AS PRDHA
A~AUART "order type
SUM( A~ZZGICST ) AS ZZGICST "출고원가, 즉 매입원가
SUM( A~ZZSONETWR ) AS ZZSONETWR "출고금액, 즉 매출액
INTO CORRESPONDING FIELDS OF TABLE GT_TEMP
FROM S601 AS A INNER JOIN KNA1 AS B
ON A~MANDT = B~MANDT
AND A~KUNNR = B~KUNNR
INNER JOIN KNVV AS C
ON B~MANDT = C~MANDT
AND B~KUNNR = C~KUNNR
WHERE A~SPTAG BETWEEN GV_ISSUE_FROM_DT AND GV_ISSUE_TO_DT
AND A~SSOUR = SPACE
AND A~VRSIO = '000'
AND A~SPMON = SPACE
AND B~KTOKD IN ('Y001','0110')
AND C~VWERK IN S_WERKS
AND C~VKORG = '3000'
AND C~VTWEG = '10'
AND C~SPART = '10'
GROUP BY C~VWERK A~AUART A~SPTAG A~KUNNR A~PSTYV A~ZZPRODH3.
"원가부분
"일단은 이번달 한달치만 구한다.
"매출액과 다르게 원가부분은 당월만 구하면 된다.
SELECT A~WERKS
A~STD_DATE AS SPTAG
MAX( B~NIELS ) AS NIELS "사업장구분
MAX( B~KUKLA ) AS KUKLA "관계사구분
MAX( C~KALKS ) AS KALKS "직거래구분
A~KUNNR
MAX( C~KVGR4 ) AS KVGR4 "결산일
SUM( A~WHCOST ) AS WHCOST "창고료
SUM( A~TPCOST ) AS TPCOST "운송비
SUM( A~WKCOST ) AS WKCOST "입출고비
SUM( A~ETCOST ) AS ETCOST "통관비
SUM( A~DSCOST ) AS DSCOST "곡류물류비
SUM( A~PRCOST ) AS PRCOST "임가공비
INTO CORRESPONDING FIELDS OF TABLE GT_TEMP2
FROM ZTMM1260 AS A INNER JOIN KNA1 AS B
ON A~MANDT = B~MANDT
AND A~KUNNR = B~KUNNR
INNER JOIN KNVV AS C
ON B~MANDT = C~MANDT
AND B~KUNNR = C~KUNNR
WHERE A~STD_DATE BETWEEN GV_CUR_FROM_DT AND GV_CUR_TO_DT
AND B~KTOKD IN ('Y001','0110')
AND C~VWERK IN S_WERKS
AND C~VKORG = '3000'
AND C~VTWEG = '10'
AND C~SPART = '10'
AND A~BUKRS = 'L100'
GROUP BY A~WERKS A~STD_DATE A~KUNNR.
* e-abap님에 의해서 게시물 복사되었습니다 (2010-01-09 13:43)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:56)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:59)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-01-09 13:59)
음. 위에 코딩만 봐서는 확신이 안 서지만...
느낌만으로 보면 c~vwerk 의 조건으로 주신것이 문제가 되지 않을까 싶네요.
그 필드에 조건이 들어가면서 index 탐색하는 시간이 걸리는 것 같네요.
두개의 조건으로 trace 걸으셔서 어떤 인덱스를 타는지 점검한번 해보시는 것이
좋을 것 같습니다. 각각 테이블에 index 가 어떻게 걸려있는 지 확인되지 않아서
확실히 뭐라 말씀드리기는 어려울 것 같네요. ^^ 수고하세요.