카테고리 없음

ABAP 성능 최적화 진행해 보기.

이운형 2023. 4. 11. 09:22
반응형

1. SAP S/4 HANA vs 기존 DB

- 기존 DB(Oracle, My-SQL ...) => OLTP가 메인이야! DB가 micro초단위로 항상 바뀌기 때문이지.

- S/4 HANA => OLAP + OLTP => 변경도 하고 우린 DB로 빅데이터 분석을 할꺼야!

변경 : OLTP(네트워크 상의 온라인 사용자들의 Database 에 대한 일괄 트랜잭션 처리) 성격을 갖으므로 ,

Row(행 저장 방식 사용) = INSERT UPDATE DELETE가 메인이야.

조회 : OLAP(Data 를 분석하고 의미있는 정보로 치환하거나, 복잡한 모델링) 성격을 갖으므로,

Column(열 저장 방식 사용) = SELECT가 메인 이야.

1. Tcode - st12를 입력한다.

2.Current mode 클릭후

Comment 와 검증하고 싶은 프로그램의 Transaction code를 입력한다.

3. Execute / start trace 를 클릭한다.

4. Evaluate 의 ABAP Trace를 클릭한다.

다음과 같은 ABAP LOG가 나온다.

여기서 우리가 주목해야 할 부분은 DATABASE에 얼마나 많은 부하를 주는가?

를 확인해야 한다.

DATABASE에 부하가 많이 갈수록

NetWork를 많이 탄다는 증거,

즉 성능 저하와 비용 증가를 부른다.

# Tcode sat 를 확인해 보자.

1) short descriptioin을 작성하고 원하는 프로그램의 Tcode를 입력하자

2) Execute를 클릭한다.

3) TabStrip의 Profi.을 클릭후

DATA Accesses External -> Database -> DB:OPEN을 클릭해보자

실전 예제 )

다음과 같은 코드이 SQL LOG TRACE 시작. Tcode SAT.

log trace 결과.

분석 :

VBAK Table의 Hit 수를 보면 107,598번을 진행 ->

분명 SQL 1방을 날렸지만 실제 DB는 107,598번을 탄것!

DB Net 도 88%가 넘네?

%참고 : Net은 각 건이 걸린 시간이고 Net(%)는 비중입니다.

JAVA 에서는 JPA( 1 + N) 문제라고 부름.

튜닝 방법(기초 , Sub query 활용)

결과 분석 :

Hit 수도 약 10만 건에서 1건으로 Connection 수 대폭 줄임 (Slow Query의 튜닝)

Net % 도 80 -> 0.22 로 비용 감소!

결론 :

DB Connection 수를 최대한 줄이고

DB를 접근할때 최대한 많은 DB를 가져온 후 Buffer에서 메모리를 사용하도록 DB 튜닝을 하자.

반응형