다음을 통해 공유


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

적용 대상: Azure SQL Database Azure 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를 사용하여 모니터링 아니요
쿼리 저장소를 사용하여 모니터링 아니요 아니요
데이터베이스 감시자(프리뷰)

데이터베이스 Watcher(프리뷰)

데이터베이스 Watcher는 심층 워크로드 모니터링 데이터를 수집하여 데이터베이스 성능, 구성 및 상태에 대한 자세한 보기를 제공합니다. Azure Portal의 대시보드는 Azure SQL 자산의 단일 창 보기와 모니터링되는 각 리소스에 대한 자세한 보기를 제공합니다. 데이터는 Azure 구독의 중앙 데이터 저장소로 수집됩니다. 수집된 데이터를 쿼리, 분석, 내보내기, 시각화하고 다운스트림 시스템과 통합할 수 있습니다.

데이터베이스 Watcher에 대한 자세한 내용은 다음 문서를 참조하세요.

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는 데이터베이스 및 솔루션의 성능을 최대화하고 문제를 해결하는 데 도움이 되는 고급 모니터링 및 튜닝 기능을 제공합니다. 데이터베이스 리소스 로그 및 메트릭의 스트리밍 내보내기를 여러 대상 중 하나로 구성하여 사용 및 분석하도록 선택할 수 있습니다.

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로 표시됩니다.

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

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

참고 항목

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

단일 데이터베이스, 풀링된 데이터베이스, Elastic Pool, 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에서 호스팅되는 이벤트 파일 대상을 사용합니다.