데이터베이스 성능을 모니터링하고 문제를 해결하기 위해 AI를 사용하는 Intelligent Insights(미리 보기)

적용 대상:Azure SQL DatabaseAzure SQL Managed Instance

Azure SQL Database 및 Azure SQL Managed Instance의 Intelligent Insights는 데이터베이스 성능의 현황을 알려 줍니다.

Intelligent Insights는 기본 제공 인텔리전스를 사용하여 인공 지능을 통해 지속적으로 데이터베이스 사용량을 모니터링하고 성능 저하의 원인이 되는 중단 이벤트를 검색합니다. 검색되면 문제에 대한 지능형 평가를 통해 SQLInsights(Azure Monitor SQL Insights(미리 보기)와 관련 없음)라는 Intelligent Insights 리소스 로그를 생성하는 세부 분석이 수행됩니다. 이 평가는 데이터베이스 성능 문제의 근본 원인 분석과 성능 개선을 위한 가능한 권장 사항이 있는 위치로 구성되어 있습니다.

Intelligent Insights가 수행할 수 있는 작업.

Intelligent Insights는 다음 값을 제공하는 Azure의 기본 제공 인텔리전스의 고유 기능입니다.

  • 사전 대처식 모니터링
  • 맞춤형 성능 인사이트
  • 데이터베이스 성능 저하 조기 감지
  • 감지된 문제의 근본 원인 분석
  • 성능 향상 권장 사항
  • 수십만 개의 데이터베이스에서 스케일 아웃 기능
  • DevOps 리소스 및 총 소유 비용에 긍정적인 영향

Intelligent Insights 작동 방법

Intelligent Insights는 지난 1시간 동안의 데이터베이스 워크로드와 지난 7일간의 기준 워크로드를 비교하여 데이터베이스 성능을 분석합니다. 데이터베이스 워크로드는 가장 반복이 많고 가장 큰 쿼리와 같이 데이터베이스 성능에 가장 중요하다고 판단하는 쿼리로 구성됩니다. 각 데이터베이스는 구조, 데이터, 사용량 및 애플리케이션에 따라 고유하므로 생성한 각 워크로드 기준은 해당 워크로드에 고유합니다. 또한 워크로드 기준과 관계없이 Intelligent Insights는 절대 운영 임계값을 모니터링하고 과도한 대기 시간 문제, 심각한 예외 및 성능에 영향을 줄 수 있는 쿼리 매개 변수화와 관련된 문제를 감지합니다.

인공 지능을 사용하여 관찰한 여러 메트릭에서 성능 저하 문제를 감지하면 분석을 수행합니다. 진단 로그는 데이터베이스에서 발생하는 일에 대한 지능형 인사이트를 사용하여 생성합니다. Intelligent Insights를 사용하면 첫 출현부터 해결까지 데이터베이스 성능 문제를 쉽게 추적할 수 있습니다. 감지한 각 문제는 초기 문제 감지 및 성능 향상 확인부터 완료까지 수명 주기를 통해 추적합니다.

Database performance analysis workflow

데이터베이스 성능 문제를 측정하고 감지하는 데 사용하는 메트릭은 쿼리 시간, 시간 제한 요청, 과도한 대기 시간 및 오류가 발생한 요청을 기반으로 합니다. 메트릭에 대한 자세한 내용은 감지 메트릭을 참조하세요.

식별된 데이터베이스 성능 저하가 다음 속성으로 구성된 지능형 항목과 함께 Intelligent Insights SQLInsights 로그에 기록됩니다.

속성 세부 정보
데이터베이스 정보 리소스 URI와 같이 인사이트를 감지한 데이터베이스에 대한 메타데이터입니다.
관찰한 시간 범위 검색된 정보 기간에 대한 시작 및 종료 시간
영향을 받는 메트릭 인사이트를 생성하게 만든 메트릭:
  • 쿼리 기간 증가[초].
  • 과도한 대기[초].
  • 시간 제한 요청[백분율].
  • 오류가 발생한 요청[백분율].
영향 값 측정한 메트릭 값.
영향을 받은 쿼리 및 오류 코드 쿼리 해시 또는 오류 코드. 영향을 받는 쿼리에 상관 관계를 적용하는 데 쉽게 사용할 수 있습니다. 쿼리 기간 증가, 대기 시간, 시간 제한 수 또는 오류 코드로 구성된 메트릭이 제공됩니다.
검색 이벤트의 시간 동안 데이터베이스에서 식별된 검색합니다. 15가지 검색 패턴이 있습니다. 자세한 내용은 인텔리전스 Insights를 사용하여 데이터베이스 성능 문제 해결을 참조하세요.
근본 원인 분석 인간이 읽을 수 있는 형식으로 식별한 문제의 근본 원인 분석. 일부 인사이트는 가능한 경우 성능 향상 권장 사항을 포함할 수 있습니다.

Intelligent Insights는 데이터베이스 성능 문제를 검색하고 해결하는 데 유용합니다. Intelligent Insights를 사용하여 데이터베이스 성능 문제를 해결하는 방법에 대한 자세한 내용은 Intelligent Insights를 사용하여 성능 문제 해결을 참조하세요.

Intelligent Insights 옵션

사용 가능한 Intelligent Insights 옵션은 다음과 같습니다.

Intelligent Insights 옵션 Azure SQL Database 지원 Azure SQL Managed Instance 지원
Intelligent Insights 구성 - 데이터베이스의 Intelligent Insights 분석을 구성합니다.
Azure SQL Analytics에 인사이트 스트리밍 - Azure SQL Analytics에 인사이트를 스트리밍합니다.
Azure Event Hubs로 인사이트 스트림하기 - 추가 사용자 지정 통합을 위해 Event Hubs로 인사이트를 스트림합니다.
Azure Storage에 인사이트 스트리밍 - 추가 분석 및 장기 보관을 위해 Azure Storage에 인사이트를 스트리밍합니다.

참고 항목

Intelligent insights는 서유럽, 북유럽, 미국 서부 1 및 미국 동부 1 지역에서는 사용할 수 없는 미리 보기 기능입니다.

Intelligent Insights 로그 내보내기 구성

Intelligent Insights의 출력은 분석을 위해 여러 대상 중 하나로 스트리밍할 수 있습니다.

  • Log Analytics 작업 영역으로 스트리밍한 출력은 Azure SQL Analytics와 함께 사용하여 Azure Portal의 사용자 인터페이스를 통해 인사이트를 볼 수 있습니다. 이는 통합된 Azure 솔루션이며 인사이트를 확인하는 가장 일반적인 방법입니다.
  • Azure Event Hubs에 스트리밍한 출력은 사용자 지정 모니터링 및 경고 시나리오 개발에 사용할 수 있습니다
  • Azure Storage으로 스트림되는 출력은 사용자 지정 보고 및 장기 데이터 보관 등의 사용자 지정 애플리케이션 개발에 사용할 수 있습니다.

Azure SQL 분석, Azure Event Hubs, Azure Storage 또는 소비자용 타사 제품을 통합하려면 먼저 데이터베이스의 진단 설정 페이지에서 Intelligent Insights 로깅(“SQLInsights” 로그)을 사용하도록 설정한 다음, 관련 대상 중 하나로 Intelligent Insights 로그 데이터가 스트림되도록 구성합니다.

Intelligent Insights 로깅을 사용하도록 설정하고 메트릭 및 리소스 로그 데이터가 사용 중인 제품에 스트림되도록 구성하는 방법에 대한 자세한 내용은 메트릭 및 진단 로깅을 참조하세요.

Azure SQL Analytics로 설정

Azure SQL Analytics 솔루션은 Intelligent Insights 리소스 로그 데이터를 사용하여 데이터베이스 성능에 대한 그래픽 사용자 인터페이스, 보고 및 경고 기능을 제공합니다.

마켓플레이스에서 Azure Portal 대시보드에 Azure SQL Analytics를 추가하고 작업 영역을 만들려면 Azure SQL Analytics 구성을 참조하세요

Azure SQL Analytics에서 Intelligent Insights를 사용하려면 이전 단계에서 만든 Azure SQL Analytics 작업 영역에 스트리밍하기 위해 Intelligent Insights 로그 데이터를 구성합니다. 메트릭 및 진단 로깅을 참조하세요.

다음 예제에서는 Azure SQL Analytics를 통해 확인할 수 있는 Intelligent Insights를 보여줍니다.

Intelligent Insights report

Event Hubs로 설정

Event Hubs와 함께 Intelligent Insights를 사용하려면 Intelligent Insights 로그 데이터를 Event Hubs에 스트리밍하기 위해 구성하고 메트릭 및 진단 로깅Azure 진단 로그를 Event Hubs에 스트리밍을 참조하세요.

Event Hubs를 사용하여 사용자 지정 모니터링 및 경고를 설정하려면 Event Hubs에서 메트릭 및 진단 로그로 할 수 있는 일을 참조하세요.

Azure Storage로 설정

Storage에서 Intelligent Insights를 사용하고 Intelligent Insights 로그 데이터가 Storage로 스트림되도록 구성하려면 메트릭 및 진단 로깅Azure Storage로 스트림하기를 참조하세요.

Intelligent Insights 로그의 사용자 지정 통합

Intelligent Insights를 타사 도구와 함께 사용하거나 사용자 지정 경고 및 모니터링 개발을 위해 사용하려면 Intelligent Insights 데이터베이스 성능 진단 로그 사용을 참조하세요.

감지 메트릭

Intelligent Insights를 생성하는 감지 모델에 사용하는 메트릭은 모니터링을 기반으로 합니다.

  • 쿼리 기간
  • 시간 제한 요청
  • 과도한 대기 시간
  • 오류가 발생한 요청

쿼리 시간 및 시간 제한 요청은 데이터베이스 워크로드 성능 문제를 감지하는 데 기본 모델로 사용합니다. 이는 워크로드의 현황을 직접 측정하기 때문에 사용합니다. 워크로드 성능 저하의 모든 가능한 사례를 감지하기 위해 과도한 대기 시간 및 오류가 발생한 요청은 워크로드 성능에 영향을 주는 문제를 나타내는 추가 모델로 사용합니다.

시스템은 워크로드의 변화와 데이터베이스에 적용한 쿼리 요청 수의 변화를 자동으로 고려하여 데이터베이스 성능 임계값이 정상적인지 범위를 벗어났는지를 동적으로 판단합니다.

모든 메트릭은 감지한 각 성능 문제를 분류하는 과학적으로 파생된 데이터 모델을 통해 다양한 관계에서 함께 고려합니다. 지능형 인사이트를 통해 제공하는 정보는 다음과 같습니다.

  • 감지한 성능 문제의 세부 정보.
  • 검색된 문제의 근본 원인 분석.
  • 가능한 경우 모니터링하는 데이터베이스의 성능을 향상하는 방법에 대한 권장 사항.

쿼리 기간

쿼리 시간 저하 모델은 개별 쿼리를 분석하고 성능 기준과 비교하여 쿼리를 컴파일하고 실행하는 데 걸리는 시간의 증가를 감지합니다.

기본 제공 인텔리전스가 워크로드 성능에 영향을 주는 쿼리 컴파일 또는 쿼리 실행 시간이 크게 증가한 것을 검색한 경우, 해당 쿼리는 쿼리 기간에 성능 저하 문제가 있음을 나타내기 위해 플래그 지정됩니다.

Intelligent Insights 진단 로그는 성능이 저하된 쿼리의 쿼리 해시를 출력합니다. 쿼리 해시는 성능 저하가 쿼리 컴파일 또는 쿼리 시간을 늘어나게 만든 실행 시간 증가와 관련이 있는지 여부를 나타냅니다.

시간 제한 요청

시간 제한 요청 성능 저하 모델은 개별 쿼리를 분석하고 성능 기준 기간에 비해 쿼리 실행 수준에서 시간 제한 증가 및 데이터베이스 수준의 전체 요청 시간 제한을 감지합니다.

일부 쿼리는 실행 단계에 도달하기 전에 시간이 초과할 수 있습니다. 중단한 작업자 및 수신한 요청을 비교해 기본 제공 인텔리전스는 실행 단계에 도달했는지 여부와 상관없이 데이터베이스에 도달한 모든 쿼리를 측정 및 분석합니다.

실행한 쿼리의 시간 제한 수 또는 중단한 요청 작업자 수가 시스템 관리 임계값을 초과하면 진단 로그를 지능형 인사이트로 채웁니다.

생성한 인사이트에는 시간 제한 요청 수와 시간 초과 쿼리 수가 포함됩니다. 성능 저하의 표시는 실행 단계에서 시간 제한 증가와 관련되어 있거나 전체 데이터베이스 수준을 제공합니다. 시간 제한의 증가가 데이터베이스 성능에 중요하다고 간주하는 경우 이러한 쿼리에 시간 제한 성능 저하 문제가 있음을 나타내는 플래그를 지정합니다.

과도한 대기 시간

과도한 대기 시간 모델은 개별 데이터베이스 쿼리를 모니터링합니다. 이는 시스템 관리 절대 임계값을 초과한 비정상적으로 높은 쿼리 대기 통계를 감지합니다. 다음 쿼리의 과도한 대기 시간 메트릭은 쿼리 저장소 대기 통계(sys.query_store_wait_stats)를 사용하여 관찰합니다.

  • 리소스 제한에 도달
  • 탄력적 풀 리소스 제한에 도달
  • 과도한 작업자 또는 세션 스레드 수
  • 과도한 데이터베이스 잠금
  • 메모리 압력
  • 기타 대기 통계

리소스 제한 또는 탄력적 풀 리소스 제한에 도달하면 구독 또는 탄력적 풀에서 사용 가능한 리소스의 사용량이 절대 임계값을 초과했음을 의미합니다. 이러한 통계는 워크로드 성능 저하를 나타냅니다. 과도한 작업자 또는 세션 스레드 수는 시작한 작업자 스레드 또는 세션 수가 절대 임계값을 초과하는 상태를 의미합니다. 이러한 통계는 워크로드 성능 저하를 나타냅니다.

과도한 데이터베이스 잠금은 데이터베이스의 잠금 수가 절대 임계값을 초과하는 상태를 의미합니다. 이 통계는 워크로드 성능 저하를 나타냅니다. 메모리 압력은 메모리 부여를 요청하는 스레드 수가 절대 임계값을 초과하는 상태입니다. 이 통계는 워크로드 성능 저하를 나타냅니다.

다른 대기 통계 감지는 쿼리 저장소 대기 통계를 통해 측정한 기타 메트릭이 절대 임계값을 초과하는 상태를 나타냅니다. 이러한 통계는 워크로드 성능 저하를 나타냅니다.

사용 가능한 데이터에 따라 과도한 대기 시간을 감지한 후 Intelligent Insights 진단 로그는 성능 저하에 영향을 주는 쿼리 및 영향을 받은 쿼리의 해시, 쿼리가 실행 중 대기하게 하는 메트릭의 세부 정보 및 측정한 대기 시간을 출력합니다.

오류 발생 요청

오류가 발생한 요청 성능 저하 모델은 개별 쿼리를 모니터링하고 기준 기간에 비해 오류가 발생한 쿼리 수가 증가하는 것을 감지합니다. 또한 이 모델은 기본 제공 인텔리전스가 관리하는 절대 임계값을 초과하는 심각한 예외를 모니터링합니다. 시스템은 모니터링되는 기간에 데이터베이스에 적용된 쿼리 요청과 워크로드의 변화에 대한 계정의 수를 자동으로 고려합니다.

전체 요청 수와 관련하여 측정한 오류가 발생한 요청의 증가가 워크로드 성능에 중요한 것으로 판단하면 영향을 받은 쿼리에 오류가 발생한 요청 성능 저하 문제를 나타내는 플래그를 지정합니다.

Intelligent Insights 로그는 오류가 발생한 요청 수를 출력합니다. 성능 저하가 오류가 발생한 요청 증가와 관련이 있는지 또는 모니터링한 심각한 예외 임계값을 초과하고 성능 저하의 측정 시간을 초과했는지 여부를 나타냅니다.

모니터링한 심각한 예외가 시스템에서 관리하는 절대 임계값을 초과하는 경우 심각한 예외의 세부 정보로 지능형 인사이트를 생성합니다.

다음 단계