본문 바로가기
ERP-SAP/ABAP

<ABAP> ABAP 처리 속도 향상 로직 튜닝하기

by 행복한워니의 기록 2024. 1. 9.
728x90
반응형

기업에서는 속도가 느려 처리속도 튜닝을 전문업체에 맡기기도 한다.

10여년 넘게 ABAP 튜닝으로 이름을 널리 알린 미ooo 회사가 있는데 

이 회사의 튜닝은 db의 힌트와 index 넣기 read시 binary 넣기 등의 방식을 잘 찾아서 가이드 해주신다.

 

그러나 조금 더 복잡한... 업무 로직의 개선(프로세스 개선)은 시간관계상

외부업체에서는 절대 할 수가 없다. 일주일 이주일내에 해당 레포트나 처리 프로그램을 분석해서 전부 뜯어서

개선할 수는 없기 때문이다. 

이 부분은 유지보수 담당자가 분석해서 해야 하는게 맞다고 생각한다. 

 

그래서 구 sap를 쓰면서 튜닝을 하고 싶다면 빨리 봐야할 것들을 적어본다. 

 

1. loop 안에 select single 문 혹은 select 가 있는가?

2. loop를 돌 때 불필요하게 다 도는게 아닌가? (조건절을 줄 수 있는가?)

3. loop 내에서 read 문이 있을때 binary search 를 하고 있는가?

4. into 대신 필드심볼을 써서 값을 변경하거나 읽어오거나 하는가?

5. 불필요하게 function에 들어갔다가 나오는가? 안들어갈 수 있으면 안들어가는게..

6. 대량처리 가능한 부분을 건건히 처리하고 있는가?

    (insert 를 1건씩 하는가? 아니면 table로 한번에 하는가!)

7. 위에서 db에서 조회해서 itab에 가지고 있는 것을 또 호출에서 읽는가?

8. 암복호화등 대량으로 한번에 처리해야 하는것을 건건히 하고 있는가?

9. 확인 필요 없는 오래된 데이터들도 읽은후에 처리안하고 빠지는가?

(loop나 뭔가 처리하기 전에 불필요한 데이터는 없애거나 where절로 안돌게 만들어야..)

10. db에 index 를 주거나 힌트를 주는 방식은 워낙 많이 나와있으니 이 방식은

     위에 모든 로직개선을 한 후에 추가로  함께 작업함..

 

대부분 오랜시간이 걸리는 부분은 같은 db를 여러번 읽거나

다건처리할 때  loop 를 돌면서 뭔가를 하는데 여기서 굉장히 오랜 시간을 잡아먹게 된다.

그러나 이 부분을 잘못 개선하면.. 또 데이터가 안나오는 경우들이 있어서 

프로세스를 개선할 때는 조심해야 한다.

 

 

 

 

 

 

728x90
반응형