콘텐츠로 건너뛰기
Telemetry
데이터베이스 신뢰성 SQL 레시피

지문으로 느린 데이터베이스 쿼리 찾기

원시 SQL 또는 매개변수를 저장하지 않고 느린 쿼리 속도, 평균 기간 및 최악의 관찰 기간을 기준으로 정규화된 데이터베이스 작업의 순위를 매깁니다.

초보자database_query_events검토됨 2026-07-28테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 호환성, 이벤트 계약, 합성 출력 및 운영상의 주의사항. 표준 및 소유권 검토

질문에 답변됨

조사할 만큼 지속적으로 느린 데이터베이스 작업은 무엇입니까?

원시 SQL에는 식별자, 값 및 무제한 변형이 포함되는 경우가 많습니다. 제어된 쿼리 지문은 동일한 작업을 함께 유지하므로 텔레메트리을 쿼리 텍스트 아카이브로 전환하지 않고도 느린 쿼리 속도로 반복되는 애플리케이션 경로를 식별할 수 있습니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestamp데이터베이스 작업이 완료된 시간(UTC 기준)입니다.
query_fingerprintUtf8매개변수 값이 없는 정규화된 제한된 작업 레이블입니다.
serviceUtf8작업을 실행한 애플리케이션 또는 작업자입니다.
database_nameUtf8승인된 논리적 데이터베이스 이름입니다.
statusUtf8성공 또는 실패.
duration_msFloat64밀리초 단위의 엔드투엔드 데이터베이스 작업 기간입니다.
rows_returnedInt64클라이언트가 개수를 공개할 때 반환되거나 영향을 받는 행입니다.
releaseUtf8쿼리를 발행한 애플리케이션 릴리스입니다.
environmentUtf8배포 환경.
DataFusion SQL

쿼리 복사

sql
SELECT
  query_fingerprint,
  service,
  database_name,
  COUNT(*) AS executions,
  SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END) AS slow_executions,
  100.0 * SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS slow_query_rate_pct,
  AVG(duration_ms) AS average_duration_ms,
  MAX(duration_ms) AS maximum_duration_ms
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
  AND environment = 'production'
GROUP BY query_fingerprint, service, database_name
HAVING COUNT(*) >= 10
ORDER BY slow_query_rate_pct DESC, executions DESC
LIMIT 20;

이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.

쿼리 결과

지문별 느린 쿼리 속도

송장 업데이트는 대부분의 실행에서 느린 반면, 카탈로그 쿼리는 예시된 1초 임계값 미만으로 유지됩니다.

query_fingerprintservicedatabase_nameexecutionsslow_executionsslow_query_rate_pctaverage_duration_msmaximum_duration_ms
UPDATE invoices SET status = ?billing-workerapp_production108801,2501,700
SELECT checkout WITH line_itemscheckout-apiapp_production126501,012.51,600
SELECT products BY categorycatalog-apicatalog_production1200330440

합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.

Slow-query rate by fingerprint: Find Slow Database Queries by Fingerprint 예제 결과의 합성 slow_query_rate_pct 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.

SQL 작동 방식

  1. 1지문은 원시 SQL이 아닌 애플리케이션에서 제어하는 라벨입니다. 이는 카디널리티를 제한하고 매개변수 값 캡처를 방지합니다.
  2. 2속도는 가끔 느린 대용량 작업과 대부분의 경우 느린 작업을 구별합니다.
  3. 3최소 실행 횟수는 단일 콜드 쿼리가 순위를 지배하는 것을 방지합니다.

결정해야 할 극단적인 경우

  • 워크로드당 느린 임계값을 선택하십시오. 1초는 설명을 위한 것이며 대화형 요청에 비해 너무 높을 수 있습니다.
  • 클라이언트 기간에는 해당 단계가 별도로 기록되지 않는 한 풀 대기 및 네트워크 시간이 포함됩니다.
  • 원시 쿼리 매개 변수, 연결 문자열 또는 제한되지 않은 SQL 텍스트를 기록하지 마세요.

추천 대시보드

  • 바: slow_query_rate_pct by query_fingerprint
  • 트렌드: 릴리스별 average_duration_ms
  • 표: 선택한 지문 및 서비스에 대한 최신 오류

알림 안내

여러 개의 전체 버킷에 대해 대용량 지문이 검토된 느린 쿼리 속도보다 높게 유지되면 알림합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

소스 데이터 정의

이 분석을 위한 이벤트 스키마

분석 계속하기

실제 이벤트에서 실행

테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.

무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.

API 키 받기