Azure SQL Database 및 Azure SQL Managed Instance의 모니터링 및 성능 튜닝

적용 대상:Azure SQL DatabaseAzure SQL Managed Instance

Azure SQL Database 및 Azure SQL Managed Instance에서 데이터베이스의 성능을 모니터링하려면 먼저 특정 서비스 계층 및 성능 수준을 선택할 때 선택한 데이터베이스 성능 수준을 기준으로 워크로드에서 사용하는 CPU 및 IO 리소스를 모니터링합니다. 이를 수행하기 위해 Azure SQL Database 및 Azure SQL Managed Instance는 Azure Portal에서 또는 다음 SQL Server 관리 도구 중 하나를 사용하여 볼 수 있는 리소스 메트릭을 내보냅니다.

다음 표에서는 Azure SQL Database 및 Azure SQL Managed Studio의 모니터링 기능에 대한 요약을 제공합니다.

모니터링 솔루션 SQL 데이터베이스 SQL Managed Instance 자산 모니터링 짧은 대기 시간 포괄적인 데이터
메트릭 및 경고 아니요
쿼리 없음 없음 아니요
DMV를 사용하여 모니터링 없음
쿼리 저장소를 사용하여 모니터링 없음 아니요
데이터베이스 감시자(미리 보기)
Azure MonitorSQL Insights(미리 보기) 없음 아니요
Azure Monitor 로그를 사용하는 Azure SQL 분석(미리 보기) 없음 아니요

데이터베이스 감시자는 낮은 데이터 수집 대기 시간, 자산 수준 모니터링, 쿼리 수준 세부 정보를 포함한 포괄적인 모니터링 데이터 및 수집된 모니터링 데이터에 대한 고급 분석 지원이 필요한 시나리오에 권장되는 모니터링 솔루션입니다.

Azure Portal의 데이터베이스 관리자

Azure SQL Database는 지능형 성능 튜닝 권장 사항 및 성능 향상을 위한 자동 튜닝 옵션을 제공하기 위한 다양한 데이터베이스 관리자를 제공합니다.

또한 Query Performance Insight 페이지에는 단일 및 풀링된 데이터베이스에서 가장 많은 CPU 및 IO 사용량을 담당하는 쿼리에 대한 세부 정보가 표시됩니다.

  • Query Performance Insight는 "지능형 성능" 아래에 있는 Azure SQL Database의 개요 창에 있는 Azure Portal에서 사용할 수 있습니다. 자동으로 수집된 정보를 사용하여 쿼리를 식별하고 워크로드 성능 최적화를 시작합니다.
  • 또한 회귀를 방지하기 위해 쿼리 실행 계획을 강제 실행하거나 워크로드 패턴을 기반으로 비클러스터형 인덱스를 만들기 및 삭제하는 등 이러한 권장 사항을 자동으로 구현하도록 자동 튜닝을 구성할 수 있습니다. 자동 튜닝은 Azure Portal의 "지능형 성능" 아래에 있는 Azure SQL Database 개요 창에서도 사용할 수 있습니다.

Azure SQL Database 및 Azure SQL Managed Instance는 인공 지능이 뒷받침하는 고급 모니터링 및 튜닝 기능을 제공하여 데이터베이스 및 솔루션의 문제를 해결하고 성능을 최대화할 수 있도록 지원합니다. 이러한 Intelligent Insights 및 기타 데이터베이스 리소스 로그 및 메트릭의 스트리밍 내보내기를 사용량 및 분석을 위해 여러 대상 중 하나로 구성하도록 선택할 수 있습니다.

Azure Portal 외부에서 데이터베이스 엔진에는 쿼리 저장소DMV(동적 관리 뷰)와 같이 Azure SQL Database 및 SQL Managed Instance가 사용하는 자체 모니터링 및 진단 기능이 있습니다. Azure SQL Database 및 Azure SQL Managed Instance의 다양한 성능 문제를 모니터링하는 스크립트는 DMV를 사용한 모니터링을 참조하세요.

모니터링 및 진단 원격 분석

다음 다이어그램은 Azure SQL 제품에서 생성된 모든 데이터베이스 엔진, 플랫폼 메트릭, 리소스 로그 및 Azure 활동 로그, 처리 방법 및 분석을 위해 표시되는 방법을 자세히 설명합니다.

Azure SQL 제품에 대한 전체 로깅 및 진단 정보 경로를 보여 주는 다이어그램

Azure Portal에서 Azure SQL 모니터링 및 조정

Azure Portal에서 Azure SQL Database 및 Azure SQL Managed Instance는 리소스 메트릭 모니터링을 제공합니다. Azure SQL Database는 데이터베이스 관리자를 제공하고 쿼리 성능 Insight는 쿼리 튜닝 권장 사항 및 쿼리 성능 분석을 제공합니다. Azure Portal에서 논리 SQL Server와 해당 단일 및 풀링된 데이터베이스에 대해 자동 튜닝을 사용하도록 설정할 수 있습니다.

참고 항목

사용량이 매우 적은 데이터베이스는 포털에서 실제 사용량보다 적게 표시될 수 있습니다. double 값을 가장 가까운 정수로 변환할 때 원격 분석을 내보내는 방식으로 인해 0.5 미만의 특정 사용량은 0으로 반올림되어 내보낸 원격 분석의 세분성이 손실됩니다. 자세한 내용은 낮은 데이터베이스 및 탄력적 풀 메트릭을 0으로 반올림을 참조하세요.

Azure SQL Database 및 Azure SQL Managed Instance 리소스 모니터링

메트릭 보기의 Azure Portal에서 다양한 리소스 메트릭을 빠르게 모니터링할 수 있습니다. 이러한 메트릭을 사용하면 데이터베이스가 CPU, 메모리, IO 또는 스토리지 리소스의 제한에 도달하고 있는지 확인할 수 있습니다. 높은 DTU, CPU 또는 IO 사용률은 워크로드에 더 많은 리소스가 필요함을 나타낼 수 있습니다. 또한 쿼리를 최적화해야 함을 나타낼 수도 있습니다. Azure SQL Database 및 Azure SQL Managed Instance에서 지원되는 메트릭은 Microsoft.Sql/servers/databases, Microsoft.Sql/servers/elasticPools, Microsoft.Sql/managedInstances를 참조하세요.

SQL 데이터베이스에 대한 리소스 메트릭의 Azure Portal 스크린샷

Azure SQL Database의 권장 경고 규칙 집합은 Azure Monitor 메트릭 및 경고를 사용하여 Azure SQL Database 모니터링을 참조하세요.

참고 항목

사용된 데이터 공간과 같은 Azure Portal의 스토리지 관련 메트릭은 2의 거듭제곱 값으로 보고되지만 10의 거듭제곱 단위를 사용합니다. 예를 들어 1MB의 저장소 공간은 1,000,000바이트가 아닌 1,048,576바이트입니다. 2의 거듭제곱 값에 사용되는 최신 단위는 KiB, MiB, GiB 등입니다. 데이터베이스 엔진 내에서 지금까지 설정된 사용량과의 호환성 및 일관성을 위해 Azure SQL 스토리지 메트릭은 KB, MB, GB 등과 같은 이전 단위를 사용합니다.

Azure SQL Database의 데이터베이스 관리자

Azure SQL Database에는 단일 및 풀링된 데이터베이스에 대한 성능 튜닝 권장 사항을 제공하는 데이터베이스 관리자가 포함되어 있습니다. 이러한 권장 사항은 PowerShell을 사용하는 것뿐만 아니라 Azure Portal에서도 사용할 수 있습니다. Azure SQL Database에서 이러한 튜닝 권장 사항을 자동으로 구현할 수 있도록 자동 튜닝을 사용하도록 설정할 수도 있습니다.

Azure SQL Database의 쿼리 성능 Insight

쿼리 성능 Insight는 단일 및 풀링된 데이터베이스에 대해 가장 많이 소비되고 가장 오래 실행되는 쿼리의 Azure Portal 성능을 보여 줍니다.

낮은 데이터베이스 및 탄력적 풀 메트릭을 0으로 반올림

2020년 9월부터 사용량이 매우 적은 데이터베이스가 포털에서 실제 사용량보다 적게 표시될 수 있습니다. double 값을 가장 가까운 정수로 변환할 때 원격 분석을 내보내는 방식으로 인해 0.5 미만의 특정 사용량은 0으로 반올림되어 내보낸 원격 분석의 세분성이 손실됩니다.

0.1, 0.1, 0.1, 0.1의 네 가지 데이터 요소가 있는 1분 기간을 예로 들어 보겠습니다. 이러한 낮은 값은 0, 0, 0, 0으로 반올림되어 평균이 0으로 표시됩니다. 데이터 요소 중 하나라도 0.5보다 큰 경우(예: 0.1, 0.1, 0.9, 0.1), 0, 0, 1, 0으로 반올림되어 평균이 0.25로 표시됩니다.

성능 문제에 대한 지능형 평가 생성

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

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

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

메트릭 및 리소스 로그의 스트리밍 내보내기 사용 설정

진단 설정은 리소스 로그 범주(이전의 진단 로그)를 포함하는 기능입니다. Log Analytics, Event Hubs 및 Azure Storage를 비롯한 여러 대상 중 하나로 진단 원격 분석의 스트리밍 내보내기를 사용하도록 설정하고 구성할 수 있습니다.

참고 항목

Intelligent Insights의 리소스 로그 범주를 호출SQLInsights합니다. SQL Insights(미리 보기) 모니터링 솔루션과는 관련이 없습니다.

단일 데이터베이스, 풀된 데이터베이스, 탄력적 풀, SQL 관리형 인스턴스 및 인스턴스 데이터베이스에 대한 메트릭 및 리소스 로그 범주를 다음 Azure 서비스 중 하나로 스트리밍하도록 진단 설정을 구성합니다.

Azure Monitor의 Log Analytics 작업 영역

Azure Monitor의 Log Analytics 작업 영역으로 메트릭 및 리소스 로그를 스트리밍할 수 있습니다. 여기에서 스트리밍된 데이터는 성능 보고서와 경고 및 완화 권장 사항을 포함하는 데이터베이스에 대한 지능형 모니터링을 제공하는 클라우드 전용 모니터링 솔루션인 SQL Analytics(미리 보기)에서 사용할 수 있습니다. Log Analytics 작업 영역으로 스트리밍된 데이터는 수집된 다른 모니터링 데이터와 함께 분석될 수 있으며 경고 및 시각화 등의 다른 Azure Monitor 기능을 사용할 수도 있습니다.

참고 항목

Azure SQL 분석(미리 보기)은 많은 모니터링 솔루션이 더 이상 개발되지 않는 Azure Monitor와의 통합입니다.

Azure Event Hubs

메트릭 및 리소스 로그를 Azure Event Hubs로 스트리밍할 수 있습니다. 다음 기능을 제공하기 위해 진단 원격 분석을 이벤트 허브로 스트리밍합니다.

  • 타사 로깅 및 원격 분석 시스템에 로그 스트리밍

    모든 메트릭 및 리소스 로그를 단일 이벤트 허브로 스트리밍하여 로그 데이터를 타사 SIEM 또는 로그 분석 도구로 파이프할 수 있습니다.

  • 사용자 지정 원격 분석 또는 로깅 플랫폼 빌드

    확장성이 뛰어난 이벤트 허브의 게시-구독 특성을 통해 메트릭 및 리소스 로그를 사용자 지정 원격 분석 플랫폼으로 유연하게 수집할 수 있습니다. 자세한 내용은 Azure Event Hubs를 참조하세요.

  • Power BI로 데이터를 스트림하여 서비스의 상태 확인

    Event Hubs, Stream Analytics 및 Power BI를 사용하여 진단 데이터를 Azure 서비스에 대한 거의 실시간 인사이트로 변환합니다. 해당 솔루션 관련 세부 정보는 Stream Analytics와 Power BI: 스트리밍 데이터 실시간 분석 대시보드를 참조하세요.

Azure Storage

메트릭 및 리소스 로그를 Azure 스토리지로 스트리밍합니다. Azure Storage를 사용하여 위의 두 스트리밍 옵션보다 훨씬 적은 비용으로 방대한 양의 진단 원격 분석 데이터를 보관할 수 있습니다.

확장 이벤트 사용

또한 SQL Server, Azure SQL Database 및 Azure SQL Managed Instance에서 고급 모니터링 및 문제 해결을 위해 확장 이벤트를 사용할 수 있습니다. 확장 이벤트는 SQL 추적보다 우수한 "추적" 도구 및 이벤트 아키텍처로, 사용자가 성능 문제를 해결하거나 식별하는 데 필요한 만큼의 데이터를 수집할 수 있게 하는 동시에 지속적인 애플리케이션 성능에 대한 영향을 완화합니다. 확장 이벤트는 더 이상 사용되지 않는 SQL 추적 및 SQL Server Profiler 기능을 대체합니다. Azure SQL Database의 확장 이벤트 사용에 대한 자세한 내용은 Azure SQL Database 확장 이벤트를 참조하세요. Azure SQL Database 및 SQL Managed Instance에서 Azure Blob Storage에서 호스팅되는 이벤트 파일 대상을 사용합니다.