ST05로 표준 로직 추적하기 - SQL Trace로 가격결정 따라가기

ST05로 표준 로직 추적하기 배너

ST05란?

ST05(Performance Trace)는 한 동작이 내부적으로 어떤 DB를 어떻게 읽고 쓰는지 기록해 주는 추적 도구입니다. 가장 많이 쓰는 것은 SQL Trace이고, 그 외에 RFC·Enqueue(잠금)·Buffer·HTTP 트레이스도 지원합니다.

성능 분석이 대표 용도지만, 그에 못지않게 유용한 쓰임이 하나 더 있습니다 — "표준이 도대체 어디서 무슨 데이터를 읽는지" 역추적하는 것입니다. 디버거로 표준 흐름을 따라가기 막막할 때, ST05로 실행된 SQL과 호출 위치를 보면 단서를 빠르게 잡을 수 있습니다.

기본 사용 흐름

ST05는 켜고 → 작업하고 → 끄고 → 본다의 4단계입니다.

STEP 1Activate Trace추적 켜기 (트레이스 종류 선택)
STEP 2작업 실행추적할 트랜잭션 수행
STEP 3Deactivate추적 끄기
STEP 4Display Trace기록된 SQL·호출 위치 확인

트레이스 결과에는 실행된 SQL문, 대상 테이블, 실행 시간, 그리고 그 SQL을 호출한 위치(프로그램·Include·라인)가 함께 남습니다. 이 "호출 위치"가 표준 로직을 거슬러 올라가는 출발점이 됩니다.

WARNING

추적은 시스템 부하를 유발하고 권한이 필요합니다. 가능하면 추적 범위를 좁히고(사용자/트랜잭션 한정), 운영 시스템에서는 짧게 켰다 끄는 것이 안전합니다.

실전 예시: 가격결정이 조건레코드를 읽는 지점 찾기

PO나 판매문서의 단가가 "왜 이 값으로 결정됐는지" 추적해야 할 때가 있습니다. 가격결정 흐름을 디버거로 따라가기는 번거로운데, ST05로 추적하면 어떤 표준 루틴과 함수가 조건레코드를 읽는지가 드러납니다.

추적해 보면 가격결정 과정에서 조건레코드를 찾는 표준 함수 PRICING_SELECT_RECORD가 호출되고, 그 호출이 가격결정 루틴(예: LV61A... 계열의 인클루드 내 FORM)에서 일어나는 것을 확인할 수 있습니다. 즉 ST05의 호출 스택을 따라가면 "조건레코드(KONP 등)를 어디서 읽어 단가를 가져오는지"를 코드 레벨에서 짚을 수 있습니다.

ST05 SQL 트레이스 결과 화면 예시

트레이스 결과에서 어떤 테이블(KONP·A017)을 어떤 위치(PRICING_SELECT_RECORD)가 읽는지 드러납니다. (익명 예시)

이렇게 표준 함수·루틴 이름을 일단 확보하면, 이후에는 그 지점에 브레이크포인트를 걸어 디버깅하거나, 관련 SAP Note·문서를 검색하는 식으로 분석을 이어가기 훨씬 수월해집니다.

INFO

구체적인 루틴/인클루드 이름과 호출 경로는 릴리스(S/4HANA 등)와 가격결정 구성에 따라 다를 수 있습니다. ST05 결과의 "호출 위치"를 기준으로 실제 시스템에서 확인하세요.

정리

  • ST05켜고 → 작업 → 끄고 → 표시로 SQL/RFC/잠금 등을 추적하는 도구다.
  • 성능 분석뿐 아니라 표준이 어떤 테이블·함수를 읽는지 역추적하는 데 강력하다.
  • 가격결정은 PRICING_SELECT_RECORD 등으로 조건레코드를 읽으며, ST05의 호출 위치로 그 지점을 찾을 수 있다.

Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.