ST05(Performance Trace)는 한 동작이 내부적으로 어떤 DB를 어떻게 읽고 쓰는지 기록해 주는 추적 도구입니다. 가장 많이 쓰는 것은 SQL Trace이고, 그 외에 RFC·Enqueue(잠금)·Buffer·HTTP 트레이스도 지원합니다.
성능 분석이 대표 용도지만, 그에 못지않게 유용한 쓰임이 하나 더 있습니다 — "표준이 도대체 어디서 무슨 데이터를 읽는지" 역추적하는 것입니다. 디버거로 표준 흐름을 따라가기 막막할 때, ST05로 실행된 SQL과 호출 위치를 보면 단서를 빠르게 잡을 수 있습니다.
ST05는 켜고 → 작업하고 → 끄고 → 본다의 4단계입니다.
트레이스 결과에는 실행된 SQL문, 대상 테이블, 실행 시간, 그리고 그 SQL을 호출한 위치(프로그램·Include·라인)가 함께 남습니다. 이 "호출 위치"가 표준 로직을 거슬러 올라가는 출발점이 됩니다.
추적은 시스템 부하를 유발하고 권한이 필요합니다. 가능하면 추적 범위를 좁히고(사용자/트랜잭션 한정), 운영 시스템에서는 짧게 켰다 끄는 것이 안전합니다.
PO나 판매문서의 단가가 "왜 이 값으로 결정됐는지" 추적해야 할 때가 있습니다. 가격결정 흐름을 디버거로 따라가기는 번거로운데, ST05로 추적하면 어떤 표준 루틴과 함수가 조건레코드를 읽는지가 드러납니다.
추적해 보면 가격결정 과정에서 조건레코드를 찾는 표준 함수 PRICING_SELECT_RECORD가 호출되고, 그 호출이 가격결정 루틴(예: LV61A... 계열의 인클루드 내 FORM)에서 일어나는 것을 확인할 수 있습니다. 즉 ST05의 호출 스택을 따라가면 "조건레코드(KONP 등)를 어디서 읽어 단가를 가져오는지"를 코드 레벨에서 짚을 수 있습니다.
트레이스 결과에서 어떤 테이블(KONP·A017)을 어떤 위치(PRICING_SELECT_RECORD)가 읽는지 드러납니다. (익명 예시)
이렇게 표준 함수·루틴 이름을 일단 확보하면, 이후에는 그 지점에 브레이크포인트를 걸어 디버깅하거나, 관련 SAP Note·문서를 검색하는 식으로 분석을 이어가기 훨씬 수월해집니다.
구체적인 루틴/인클루드 이름과 호출 경로는 릴리스(S/4HANA 등)와 가격결정 구성에 따라 다를 수 있습니다. ST05 결과의 "호출 위치"를 기준으로 실제 시스템에서 확인하세요.
ST05는 켜고 → 작업 → 끄고 → 표시로 SQL/RFC/잠금 등을 추적하는 도구다.PRICING_SELECT_RECORD 등으로 조건레코드를 읽으며, ST05의 호출 위치로 그 지점을 찾을 수 있다.Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.