ST04와 DBA Cockpit - 데이터베이스 성능 모니터 기초

ST04와 DBA Cockpit 배너

ST04는 무엇을 보여주나

ST04는 SAP 시스템이 붙어 있는 데이터베이스 전체의 상태와 부하를 보여주는 모니터입니다.

여기서 "전체"라는 단어가 핵심입니다. 개발자가 익숙한 ST05SAT내가 지금 돌린 것 하나를 들여다보는 도구입니다. 반면 ST04는 시스템에 접속한 모든 사용자와 잡이 만들어낸 DB 부하의 총합을 봅니다.

먼저 알아둘 것: ST04는 하나가 아니다

이 글에서 가장 먼저 강조하고 싶은 부분입니다.

WARNING

ST04 화면은 시스템마다 다릅니다. 데이터베이스 종류(HANA / Oracle / DB2 / SQL Server)에 따라 지표 이름과 화면 구성이 아예 다르고, 릴리스에 따라 DBACOCKPIT으로 통합되거나 그쪽으로 넘어가는 경우도 많습니다.

그래서 "ST04 화면 이렇게 생겼습니다"라고 단정하는 설명은 대체로 자기 시스템에서만 맞습니다. 먼저 자기 시스템의 DB 종류와 ST04 동작을 확인하는 것부터 시작하세요.

전통적 구성ST04 = DB별 전용 모니터

DB 종류에 맞는 성능 모니터 화면이 직접 뜹니다. Oracle이면 Oracle 지표, DB2면 DB2 지표가 나옵니다.

최근 구성DBACOCKPIT으로 통합

DB 관리·모니터링 기능이 DBACOCKPIT 한곳으로 모입니다. ST04를 쳐도 이쪽으로 연결되는 시스템이 많습니다.

S/4HANA 환경이라면 대개 HANA 전용 모니터를 DBA Cockpit 안에서 보는 형태가 됩니다.

개발자가 볼 만한 지표

Basis 담당자가 보는 항목은 훨씬 많지만, 개발자 입장에서 의미 있는 것은 대체로 다음입니다.

Expensive SQL Statements

가장 실용적인 항목입니다. 비용이 큰 SQL 문장 목록으로, 여기서 내 프로그램의 쿼리를 찾을 수 있습니다.

ST05는 "내가 지금 실행한 것"만 보이기 때문에, 가끔씩만 느려지는 문제나 남이 돌린 배치가 만드는 부하는 잡히지 않습니다. 그런 건 이 목록에서 찾습니다.

SQL 캐시 / 커서 캐시

실행된 SQL과 그 통계가 쌓이는 영역입니다. 같은 쿼리가 몇 번 실행됐고 누적 시간이 얼마인지 볼 수 있습니다.

여기서 자주 발견되는 패턴이 있습니다. 한 번 실행에 5ms밖에 안 걸리는데 하루에 200만 번 실행되는 쿼리입니다. 개별로 보면 빠르니 ST05에서는 문제로 안 보이지만, 누적 부하로는 상위권입니다. 대개 루프 안의 SELECT가 원인입니다.

잠금 대기(Lock Wait)

여러 세션이 같은 자원을 두고 기다리는 상황입니다. "특정 시간대에만 느리다", "동시에 여러 명이 쓰면 멈춘다" 같은 증상의 단서가 됩니다.

INFO

SAP 애플리케이션 잠금(SM12의 Enqueue)과 데이터베이스 잠금은 다른 층위입니다. 증상이 비슷해 헷갈리기 쉬우니, 어느 쪽인지 먼저 구분하세요.

I/O·메모리 관련 지표

버퍼 적중률, 읽기/쓰기량 같은 항목입니다. 개발자가 직접 손댈 영역은 아니지만, "내 쿼리가 느린 게 아니라 DB 자체가 힘든 상황" 인지 판별하는 데 참고가 됩니다.

HANA 환경에서는 무엇이 달라지나

S/4HANA로 오면서 전제가 몇 가지 바뀝니다.

  • 디스크 I/O 중심 지표의 비중이 줄어듭니다. 인메모리 구조라 전통적인 버퍼 적중률 논의가 예전만큼 중심이 아닙니다.
  • 대신 메모리와 CPU가 관심사가 됩니다. 어떤 테이블이 메모리를 얼마나 점유하는지, 델타 머지 상태는 어떤지 같은 항목이 등장합니다.
  • Expensive Statements Trace 같은 HANA 고유 기능을 함께 보게 됩니다.
WARNING

HANA 관련 화면과 지표 명칭은 HANA 버전·SP에 따라 차이가 큽니다. 여기서는 "무엇을 보게 되는지"의 방향만 잡고, 구체적인 항목은 실제 시스템과 SAP 공식 문서에서 확인하세요.

ST04와 ST05, 역할 구분

ST04전체 부하를 본다

시스템 전체 관점. "누가 DB를 힘들게 하고 있나" 를 찾습니다. 재현이 어려운 문제, 누적 부하 문제에 강합니다.

ST05한 세션을 본다

내가 실행한 것만 추적. "이 프로그램이 어떤 SQL을 어떻게 날리나" 를 봅니다. 재현 가능한 문제에 강합니다.

실전 흐름은 보통 이렇게 이어집니다.

STEP 1ST04문제 쿼리 후보 찾기
STEP 2소스 역추적어느 프로그램인가
STEP 3ST05 · SAT재현하며 상세 분석

주의사항

  • 권한이 없을 수 있습니다. ST04·DBACOCKPIT은 운영 권한 영역이라, 개발자 계정으로는 아예 안 열리거나 조회만 되는 경우가 흔합니다. Basis 담당자와 함께 보는 것이 현실적입니다.
  • 조회 자체도 부하입니다. 특히 통계 수집·트레이스 활성화 옵션은 운영계에 영향을 줍니다. 임의로 켜지 마세요.
  • 수치의 기준 시점을 확인하세요. 누적값인지 특정 구간값인지에 따라 해석이 완전히 달라집니다.

정리

ST04는 개발자가 매일 여는 도구는 아닙니다. 다만 다음 상황에서는 여기서부터 시작하는 게 빠릅니다.

  • 재현이 안 되는 성능 문제 ("어제 오후에만 느렸대요")
  • 개별로는 빠른데 전체적으로 시스템이 무거운 경우
  • 내 프로그램이 시스템 전체에서 차지하는 비중을 확인해야 할 때

반대로 재현 가능한 특정 프로그램의 문제라면 ST04를 거칠 필요 없이 ST05·SAT로 바로 가는 게 낫습니다.

INFO

트랜잭션 동작, 화면 구성, 지표 명칭은 DB 종류·SAP 릴리스·설치 구성에 따라 크게 다릅니다. 이 글은 방향을 잡기 위한 개괄이며, 실제 수치 해석은 자사 시스템 기준과 Basis 담당자의 판단을 따르세요.

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