5.2. APM 에서 SQL 을 눌러 바로 진단하기
트랜잭션 상세의 AI 쿼리 진단 버튼 — 프롬프트를 쓰지 않고 결과를 받는 길
느린 트랜잭션을 살펴보다 어느 SQL 이 지연을 일으키는지 알아냈을 때, 그 쿼리를 위젯에 옮겨 적을 필요가 없습니다. 버튼 하나로 넘깁니다.
이 장은 OPENMARU APM 에만 있는 길입니다. 다른 콘솔에는 없습니다.
어디에 있나
워터폴에서 DB 를 호출한 구간에는 이름 옆에 SQL 버튼이 붙습니다. 누르면 그 스팬의
쿼리를 보여주는 다이얼로그가 열립니다.
다이얼로그가 보여주는 것

| 칸 | 내용 |
|---|---|
| 01 SQL 쿼리 | 원본 쿼리 — 물음표(?) 자리표시자가 그대로 |
| 02 파라미터 | 그 자리에 실제로 들어간 값 |
| 03 매핑된 쿼리 | 값이 채워진 실행된 그대로의 쿼리 |
| 04 FETCH | 결과를 몇 번, 얼마 만에 가져왔나 |
제목 옆에 성공 / 실패 배지가 붙고, 실패했다면 오류 내용이 함께 나옵니다. 접속 정보와 걸린 시간도 표시됩니다.
각 칸에 복사 버튼이 있어 따로 복사할 수도 있습니다.
버튼을 누르면
**AI 에 넘어가는 것은 매핑된 쿼리**입니다. 자리표시자가 아니라 실제 값이 들어간
쿼리라 실행 계획을 그대로 받아 올 수 있습니다.
화면이 프롬프트를 대신 만들어 줍니다. 대강 이런 내용입니다.
database 서버 connection_id=
<DB 종류>아래 쿼리를 analyze_slow_query 도구를 사용해 분석해줘 — Query :<매핑된 쿼리>
쿼리가 실패한 것이었다면 오류 메시지도 함께 넘어갑니다. 왜 실패했는지까지 봐 달라는 뜻입니다. 사용자가 따로 붙여 넣지 않아도 됩니다.
DB 종류(mysql·oracle·postgresql …)와 접속 대상은 다이얼로그가 보고 있던 접속
정보에서 자동으로 채웁니다.
눌렀을 때 화면 반응
버튼이 순서대로 바뀝니다. 이 변화가 "접수됐다" 는 신호입니다.
동시에 화면 위에 "CogentAI 패널에서 결과를 확인하세요" 라는 알림이 잠깐 나옵니다.
SQL 다이얼로그는 닫히지 않습니다
일부러 그렇게 만들었습니다. 요청을 보낸 뒤에도 쿼리를 계속 보면서 위젯의 답을 읽을
수 있습니다. 다 봤으면 닫기 나 X 로 직접 닫습니다.
위젯이 접혀 있었다면 알림을 보고 펼치십시오. 답은 이미 그 안에 도착해 있습니다.
결과로 무엇이 오나
analyze_slow_query 가 하는 일이라 답변에는 대개 이런 것이 함께 옵니다.
- 실행 계획 — 트리 모양 차트. 어느 단계가 비싼지 눈으로 짚을 수 있습니다
- 느린 이유 — 인덱스를 쓰지 않았다, 전체 스캔이다 같은 해석
- 고칠 방향 — 인덱스 후보, 쿼리 다시 쓰기
실행 계획 차트는 끌어서 옮기고 확대할 수 있습니다. 큰 계획은 화면을 벗어나므로 다루는 법을 실행 계획과 ERD 읽기에서 따로 다룹니다.
잘 안 될 때
버튼이 아예 안 보인다
두 가지 중 하나입니다.
- APM 설정에서 CogentAI 연동이 꺼져 있다 — 관리자가 켜야 합니다
- 내 계정에 권한이 없다 — 계정마다 사용 여부를 가릅니다
관리자에게 문의 하십시오. 화면에서 켤 수 있는 것이 아닙니다.
"AI 위젯이 아직 준비되지 않았습니다"
위젯이 다 준비되기 전에 눌렀을 때 나옵니다. 요청은 보내지 않습니다. 아무 반응 없이 끝나는 것보다 알려 주는 편이 낫기 때문입니다.
잠깐 기다렸다 다시 누르십시오. 계속 같으면 화면을 새로 고칩니다.
눌렀는데 답이 안 온다
위젯을 펼쳐 보십시오. 접힌 상태라도 답은 그 안에 들어옵니다. 그래도 없으면 잘 안 될 때를 보십시오.
이 길이 편한 이유
같은 일을 자유 질문으로 하려면 쿼리를 복사해 붙이고, DB 종류를 적고, 도구 이름을 적어야 합니다. 버튼은 그 셋을 대신합니다.
| 버튼 | 손으로 | |
|---|---|---|
| 쿼리 | 매핑된 쿼리를 자동으로 | 복사·붙여넣기 |
| DB 종류 | 접속 정보에서 자동 | 직접 적기 |
| 오류 메시지 | 있으면 자동 포함 | 따로 붙이기 |
옮겨 적는 사이에 값이 틀어질 일이 없다는 것이 가장 큰 차이입니다.
다음으로
- 결과의 실행 계획 읽기 — 실행 계획과 ERD 읽기
- 버튼 없이 물어보기 — 데이터베이스에 무엇을 물어볼 수 있나
- APM 의 다른 진입점 — OPENMARU APM 에서