목표
이 자습서를 마치면 다음을 수행하게 됩니다.
- 느린 데이터베이스 쿼리 식별
- 느린 데이터베이스 쿼리를 해결하는 방법 이해
- 데이터베이스 UI 사용 방법 이해
데이터베이스 쿼리를 최적화하는 이유
앱이 중단되면 시스템만큼 복잡한 문제를 해결하는 동안 고객은 기다리게 됩니다. 데이터가 보고되고 무엇이 문제일 수 있는지 대략적으로 알고 있지만 어디서부터 시작해야 할까요?
사이트가 데이터베이스에 의존하는 경우(아마도 그럴 것임) 쿼리 응답 시간이 예상대로 수행되는지 확인하고 싶을 것입니다. 종종 사이트의 성능은 데이터베이스가 고객이 보낸 쿼리를 얼마나 잘 처리하는지에 따라 달라집니다. New Relic을 사용하면 데이터베이스 UI를 사용하여 시간 경과에 따른 데이터베이스 성능을 추적할 수 있으므로 문제가 발생한 시기를 정확히 파악하여 필요한 솔루션 종류를 파악할 수 있습니다.
이 자습서에서는 데이터베이스 작업에서 느린 쿼리 문제를 해결하는 방법을 설명합니다.
앱 데이터의 문제 범위 파악
데이터베이스 UI는 NRQL 쿼리로 작성된 차트를 표시합니다. 이 차트는 설치한 에이전트가 보고한 apm.service.datastore.operation.duration
측정항목의 데이터를 사용합니다. 이 차트는 상위 작업별 상위 데이터베이스 프로세스의 응답 시간, 해당 쿼리 시간 및 앱의 처리량을 보여줍니다.
문제의 범위를 정할 때 동일한 이야기의 다른 부분을 말하므로 이러한 각각의 진입점을 사용하는 것이 좋습니다. UI를 사용하여 성능 문제 진단을 시작하는 방법을 살펴보겠습니다.
가장 느린 쿼리 문제 해결을 시작하려면 APM의 기본 데이터베이스 UI에서 시작합니다.
데이터베이스 UI로 이동: one.newrelic.com > (앱 선택) > monitor > databases이동합니다.
데이터베이스 작업에 소요되는 시간
Most time consuming[가장 많은 시간이 소요되는] 차트는 데이터베이스 작업에 의한 쿼리의 총 처리 시간을 보여줍니다.
쿼리 시간별 상위 데이터베이스
Top databases by query time[쿼리 시간별 상위 데이터베이스] 차트는 쿼리를 실행하는 데 걸리는 시간을 기준으로 데이터베이스 성능을 보여줍니다.
데이터베이스 쿼리에 대해 자세히 알아보기
더 깊이 파고든다는 것은 데이터를 따라간다는 것을 의미합니다. 문제가 있는 대략적인 영역을 식별하는 것은 해결책을 찾는 과정의 일부일 뿐입니다.
데이터베이스의 평균 성능을 살펴본 후 다음 단계는 쿼리 시간, 트랜잭션 및 스택 추적을 사용하여 데이터를 추적하는 것입니다.