자동 데이터베이스 튜닝
적용 대상:Azure SQL Database
Azure SQL Managed Instance
Fabric의 SQL 데이터베이스
자동 튜닝은 AI 및 기계 학습에 기반한 지속적인 성능 조정을 통해 최고 성능 및 안정적인 워크로드를 제공합니다.
자동 튜닝은 데이터베이스에서 실행되는 쿼리를 지속적으로 모니터링하고 성능을 자동으로 향상시키는 완전 관리형 지능형 성능 서비스입니다. 이것은 변화하는 워크로드에 동적으로 데이터베이스를 적용하고 튜닝 권장 사항을 적용함으로써 달성됩니다.
자동 조정은 AI를 통해 Azure의 모든 데이터베이스에서 수평적으로 학습하고 동적으로 조정 작업을 개선합니다.
안전하고 신뢰할 수 있으며 검증됨
데이터베이스에 적용된 조정 작업은 가장 강력한 워크로드의 성능에 대해 완벽하게 안전합니다. 시스템은 사용자 워크로드를 방해하지 않도록 주의하여 설계되었습니다.
자동 조정 권장 사항은 CPU, 데이터 IO, 로그 IO의사용률이 낮은 경우에만 적용됩니다. 시스템 또한 워크로드 성능을 보호하기 위해 일시적으로 자동 조정 작업을 사용하지 않도록 설정할 수도 있습니다. 이 경우 Azure Portal 및 sys.database_automatic_tuning_options 동적 관리 뷰에 "시스템에서 사용 안 함" 메시지가 표시됩니다. 자동 튜닝은 사용자 워크로드에 가장 높은 리소스 우선 순위를 부여하도록 설계되었습니다.
자동 조정 메커니즘은 Azure에서 실행되는 수십만 개의 데이터베이스에서 완성도를 높여 더욱 진보되었습니다. 적용된 자동화된 튜닝 작업은 워크로드 성능이 크게 향상되도록 자동으로 확인됩니다. 개선이 없거나 성능이 저하되는 드문 경우에는 자동 튜닝으로 인한 변경 사항이 즉시 되돌려집니다. 기록된 튜닝 기록을 통해 Azure SQL 데이터베이스의 각 데이터베이스에 대한 튜닝 개선 사항을 명확히 추적할 수 있습니다. 자동 튜닝을 사용하여 데이터베이스를 더 오래 실행할수록 더 많은 이점을 얻을 수 있습니다.
Azure SQL 자동 튜닝은 데이터베이스 엔진의 SQL Server 자동 튜닝 기능과 핵심 논리를 공유합니다. 기본 제공 인텔리전스 메커니즘에 대한 추가 기술 정보는 SQL Server 자동 조정을 참조하세요.
팁
자세한 내용은 블로그: 인공 지능이 Azure SQL Database조정합니다.
Microsoft Azure SQL Database 의 수백만 개 데이터베이스를 자동으로 인덱싱하는을 다룬 Microsoft Research PDF를 읽어보세요.
자동 조정이 당신에게 해줄 수 있는 것
데이터베이스의 자동화된 성능 튜닝에는 다음이 포함됩니다.
- 성능 향상의 자동화된 확인
- 자동화된 롤백 및 자체 수정
- 조정 기록
- 수동 배포를 위한 T-SQL(Transact-SQL) 스크립트 조정 작업
- 수십만 개의 데이터베이스에서 스케일 아웃 기능
- DevOps 리소스 및 총 소유 비용에 긍정적인 영향
자동 튜닝 사용
- Azure SQL 데이터베이스: Azure Portal에서 자동 조정을 사용하도록 설정하거나 ALTER DATABASE T-SQL 문을 사용하여 설정할 수 있습니다.
- Azure SQL Managed Instance: ALTER DATABASE T-SQL 문을 사용하여 자동 조정을 사용하도록 설정할 수 있습니다.
- Microsoft Fabric의 SQL 데이터베이스: 기본적으로 사용하도록 설정됩니다. 자세한 내용은 Microsoft Fabric의 SQL 데이터베이스에 대한 성능 대시보드를 참조 하세요.
자동 조정 옵션
Azure SQL 데이터베이스 및 Azure SQL Managed Instance에서 사용할 수 있는 자동 튜닝 옵션은 다음과 같습니다.
자동 조정 옵션 | 설명 | 단일 데이터베이스 및 풀링된 데이터베이스 지원 | 인스턴스 데이터베이스 지원 |
---|---|---|---|
CREATE INDEX | 워크로드의 성능을 향상시킬 수 있는 인덱스를 식별하고, 인덱스를 만들고, 쿼리 성능이 향상되었는지 자동으로 확인합니다. 새 인덱스를 추천할 때 시스템은 데이터베이스에서 사용 가능한 공간을 고려합니다. 인덱스 추가가 최대 데이터 크기로 공간 사용률을 90% 이상으로 늘릴 것으로 예상되는 경우 인덱스 권장 사항이 생성되지 않습니다. 시스템이 사용률이 낮은 기간을 식별하고 인덱스를 만들기 시작하면 리소스 사용률이 예기치 않게 증가하더라도 이 작업을 일시 중지하거나 취소하지 않습니다. 인덱스 만들기에 실패하면 이후 사용률이 낮은 기간 동안 다시 시도됩니다. 클러스터형 인덱스 또는 힙이 10GB보다 큰 테이블에는 인덱스 권장 사항이 제공되지 않습니다. | 예 | 아니요 |
DROP INDEX (인덱스 삭제) | 사용되지 않은 인덱스(지난 90일 동안) 및 중복 인덱스를 삭제합니다. 기본 키 및 고유 제약 조건을 지원하는 인덱스를 포함한 고유 인덱스는 삭제되지 않습니다. 인덱스 힌트가 있는 쿼리가 워크로드에 있거나 워크로드에서 파티션 전환을 수행할 때 이 옵션을 자동으로 사용하지 않도록 설정할 수 있습니다. 이 옵션은 프리미엄 및 중요 비즈니스용 서비스 계층에서 사용되지 않은 인덱스는 절대 삭제하지 않지만 중복 인덱스(있는 경우)는 삭제합니다. | 예 | 아니요 |
마지막 좋은 계획 강제 실행(자동 계획 수정) | 이전의 적절한 계획보다 느린 실행 계획을 사용하여 Azure SQL 쿼리를 식별하고 쿼리가 회귀된 계획 대신 마지막으로 알려진 적절한 계획을 사용하도록 합니다. | 예 | 예 |
Azure SQL Database의 자동 조정
Azure SQL 데이터베이스의 자동 조정은 CREATE INDEX, DROP INDEX 및 FORCE_LAST_GOOD_PLAN 데이터베이스 관리자 권장 사항을 사용하여 데이터베이스 성능을 최적화합니다. 자세한 내용은 Azure Portal, PowerShell및 REST API성능 권장 사항 찾기 및 적용을 참조하세요.
Azure Portal을 사용하여 수동으로 튜닝 권장 사항을 적용하거나 자동 튜닝이 자동으로 튜닝 권장 사항을 적용하도록 할 수 있습니다. 시스템에서 튜닝 권장 사항을 자율적으로 적용할 수 있는 이점은 워크로드 성능에 대한 긍정적인 이득이 있는지 자동으로 확인하고, 성능 향상이 크게 개선되지 않거나 성능이 회귀하는 경우 시스템이 변경한 내용을 자동으로 되돌립니다. 쿼리 실행 빈도에 따라 유효성 검사 프로세스는 30분에서 72시간까지 걸릴 수 있으며 쿼리 실행 빈도가 낮을수록 더 오래 걸릴 수 있습니다. 유효성 검사 중 어느 시점에서든 회귀가 감지되면 변경 내용이 즉시 되돌아갑니다.
중요
T-SQL을 통해 튜닝 권장 사항을 적용하는 경우 자동 성능 유효성 검사 및 반전 메커니즘을 사용할 수 없습니다. 이러한 방식으로 적용되는 권장 사항은 시스템이 자동으로 철회되기 전에 활성 상태로 유지되며 24~48시간에 대한 튜닝 권장 사항 목록에 표시됩니다. 권장 사항을 더 빠르게 제거하려면 Azure 포털에서 제거할 수 있습니다.
자동 튜닝 옵션은 데이터베이스별로 별도로 설정 또는 해제하거나 서버 수준에서 구성하고 서버에서 설정을 상속하는 모든 데이터베이스에서 적용할 수 있습니다. 기본적으로 새 서버는 자동 튜닝 설정에 대한 Azure 기본값을 상속합니다. Azure 기본값은 FORCE_LAST_GOOD_PLAN = 사용, CREATE_INDEX = 사용 안 함, DROP_INDEX = 사용 안 함으로 설정되어 있습니다.
서버에서 자동 튜닝 옵션을 구성하고 부모 서버에 속한 데이터베이스에 대한 설정을 상속하는 것이 자동 튜닝 구성에 권장되는 방법입니다. 많은 수의 데이터베이스에 대한 자동 튜닝 옵션 관리를 간소화합니다.
자동 조정 권장 사항에 대한 이메일 알림 구축 방법을 알아보려면 자동 조정 이메일 알림을 참조하세요.
Azure SQL Managed Instance에 대한 자동 튜닝
SQL Managed Instance에 대한 자동 튜닝은 FORCE LAST GOOD PLAN만 지원합니다. T-SQL을 통한 자동 튜닝 옵션 구성에 대한 자세한 내용은 자동 튜닝에 자동 계획 수정 도입 및 자동 계획 수정을 참조하세요.
Microsoft Fabric에서 SQL 데이터베이스에 대한 자동 튜닝
CREATE INDEX에 대한 자동 튜닝 옵션은 Microsoft Fabric의 SQL 데이터베이스에서 자동으로 사용하도록 설정됩니다.
활성화할 샘플
자세한 내용은 ALTER DATABASE SET 옵션을 참조하세요.
부모 논리 서버에서 기본 구성을 상속하려면 다음 T-SQL을 사용합니다. Azure Portal에서 이는 '상속 위치: 서버'에 대한 옵션을 반영합니다.
ALTER DATABASE CURRENT
SET AUTOMATIC_TUNING = INHERIT;
CREATE INDEX 및 DROP INDEX 자동 튜닝 옵션을 사용하도록 설정하려면 다음 T-SQL을 사용합니다.
ALTER DATABASE CURRENT
SET AUTOMATIC_TUNING
(CREATE_INDEX = ON, DROP_INDEX = ON);
자동 튜닝 기록
Azure SQL 데이터베이스의 경우 자동 튜닝으로 변경한 기록은 21일 동안 유지됩니다. 데이터베이스에 대한 성능 권장 사항 페이지의 Azure Portal에서 보거나 또는 Get-AzSqlDatabaseRecommendedAction cmdlet과 함께 PowerShell을 사용하여 볼 수 있습니다. 더 오래 보존하려면 AutomaticTuning진단 설정을 활성화하여 기록 데이터를 여러 유형의 대상으로 스트리밍할 수도 있습니다.
관련 콘텐츠
- 자동 튜닝을 통해 Azure SQL 데이터베이스에서 높은 CPU를 진단하고 문제 해결하는 방법을 알아봅니다.