본문 바로가기

IT/SAP

[BC] SAP Tunning(2)

튜닝조건

[BC] SAP Tunning(1)

 

SAP 프로그램의 성능을 더 좋게 하기 위해서는

Abap, Network, DB 쪽을 튜닝할 수 있다.

이 글에서는 Abap, DB 튜닝 이다.

 

필자는 튜닝 방법으로 

1. 성능 분석

2. 튜닝(Abap, DB)

3. 성능 비교

1. 모니터링 & 분석

System Analysis(ST12)

1-1. Comment: 주석이다. 튜닝 전이라고 표기하였다.

1-2. 분석할 프로그램 명

1-3. 실행

프로그램은 인터페이스를 통해 들어온 발주데이터를 확인하여 재송신 하는 프로그램이다.

1-4. 프로그램 실행 후 종료

1-5. ABAP trace

개발 서버
테스트 서버
운영 서버

DB 조회 부분에서 많은 시간이 걸리는 것을 확인하였다.

 

2. Tuning

2-1. DB

첫번째 쿼리다. 발주하지 않은 데이터를 테이블 전체에서 조회하는 쿼리. DB Size가 커지면 커질 수록 더 느려질 수밖에 없다.

실행된 쿼리와 변수를 확인 할 수 있다. MANDT는 자동 입력 된다.
SQL

DBCC FREEPROCACHE

: Select를 계속 하다보면 처음만 느리고, 다음 실행부터 캐쉬에 남아 속도가 빨라진다. Cache를 지우는 명령어다.

set statics profile on / off

실행계획을 알려주는 쿼리다.

궁금한건 ZBATCH는 인덱스가 아닌데 왜  Index scan을 타는지 의문이다. Table Scan을 타야 하는 것아닌가?

Sap에서도 실행계획 확인 가능

Case1) 모두 주석

Case2) 기간 지정(주문작성일)

성능에 큰 차이가 없었다.

Case3: 기간 지정(주문작성일 전후 2달)

-> 기간을 추가하는 것이 더 느려짐, SQL 확인

-> 테이블 크기에 따라 성능이 더 크게 차이남

DATUM 조건이 크게 영향을 미치지 않음(오히려 조금 더 느려짐), Where절의 DATUM컬럼을 ZBATCH 앞에 둬도 동일

 

현업과 협의 결과 Case1(조건 삭제)로 결정

두번째 쿼리다.

gt_t0001 테이블을 Loop문 돌면서 조건에 따른 Select single* from ztmm0002 실행하고 있다.

 

gt_t0001 row가 9,999건이면 9,999건 select 하게 된다.
Join문으로 수정
튜닝전(5초)
튜닝후(0.4초)

2-2. Abap

Loop문 돌며 변수 할당을 MOVE-CORRESPOINDING으로 수정

3. 성능 비교

DEV
QA
PRD

Dev 42 -> 30초

QA 51 -> 10초

PRD 108 -> 2초

 

추가

운영서버 DB 삭제 SQL

이관.sql
0.00MB