Skip to main content
Monitoring 탭에서는 데이터베이스가 무엇을 하고 있는지, 즉 지금 이 순간 실행 중인 작업과 전체적으로 가장 많은 시간을 차지하는 쿼리를 확인할 수 있습니다.
Monitoring은 프로덕션 데이터베이스에서만 사용할 수 있습니다.
Database 도구에서:
  1. 프로덕션 데이터베이스를 선택하세요.
  2. Monitoring 탭을 선택하세요.
  3. Active queries 또는 Query performance를 선택하세요.

Active queries

지금 데이터베이스에서 실행 중인 모든 작업의 실시간 스냅샷입니다.
PID, 역할, 상태, 소요 시간, SQL과 함께 실행 중인 쿼리 세 개를 보여주는 Active queries
  • PID: 쿼리를 실행 중인 연결의 프로세스 ID입니다.
  • Role: 연결을 연 데이터베이스 사용자입니다.
  • State: active는 쿼리가 실행 중임을 의미합니다. idle in transaction은 트랜잭션이 열려 있지만 아무 작업도 하지 않는 상태입니다. 이 상태에서도 잠금은 유지됩니다.
  • Duration: 현재 쿼리가 실행된 시간입니다.
  • Query: 쿼리문 자체입니다.
이것은 로그가 아닌 스냅샷입니다. 새 스냅샷을 가져오려면 Refresh를 선택하세요. 대부분의 쿼리는 몇 밀리초 만에 끝나므로 목록이 비어 있는 것은 정상입니다. 이 보기는 필요 이상으로 오래 실행되는 쿼리를 찾는 데 사용하세요. 완전히 유휴 상태인 연결은 표시되지 않습니다.

Query performance

데이터베이스가 실행한 모든 쿼리의 통계이며, 비용이 가장 큰 쿼리가 먼저 표시됩니다.
각 쿼리의 역할, 호출 수, 평균 시간, 총 시간, 행 수를 보여주는 Query performance
  • Calls: 쿼리가 실행된 횟수입니다.
  • Average time: 실행당 평균 시간입니다. 개별 실행은 표시되지 않고 평균만 표시됩니다.
  • Total time: 평균 시간에 호출 수를 곱한 값입니다. 표는 이 값을 기준으로 정렬됩니다.
  • Rows: 호출당이 아니라 모든 호출에 걸친 총 행 수입니다.
  • Query: 사용자의 값이 $1 같은 플레이스홀더로 대체된 쿼리문입니다.
Average time과 Calls를 비교하면 두 가지 문제를 구분할 수 있습니다. 평균이 높고 호출이 적다면 느린 쿼리이며, 보통 인덱스가 없는 경우입니다. 평균이 낮고 호출이 많다면 앱이 너무 자주 실행하는 빠른 쿼리이며, 코드에서 변경해야 할 부분입니다.
이 통계는 데이터베이스가 일시 중단되거나 재시작되면 유지되지 않습니다. 일정 시간 동안 활동이 없어 데이터베이스가 0으로 축소되면 기록이 초기화되고, 데이터베이스가 다시 실행된 후부터 수집을 다시 시작합니다.

다음 단계