성능 구성 및 유지 관리

완료됨

일관 된 성능을 제공하기 위해서는 Azure SQL의 기능을 이해하는 것이 중요합니다. 또한 성능에 영향을 줄 수 있는 Azure SQL Managed Instance 및 Azure SQL Database를 구성하는 데 필요한 옵션과 제한을 이해하는 것이 중요합니다. 여기에는 다음과 같은 사항이 포함됩니다.

  • tempdb 데이터베이스의 항목
  • 데이터베이스 구성
  • 파일 및 파일 그룹 구성
  • max degree of parallelism 구성
  • Resource Governor 사용
  • 인덱스 및 통계 유지 관리

Tempdb

tempdb 시스템 데이터베이스는 애플리케이션에서 사용하는 중요한 공유 리소스입니다. tempdb의 올바른 구성을 보장하면 일관된 성능을 제공하는 기능에 영향을 미칠 수 있습니다. SQL Server와 Azure SQL 모두에 대해 동일한 방식으로 tempdb를 사용합니다. 그러나 파일 배치, 파일 수 및 크기, tempdb 구성 옵션을 포함하여 tempdb를 구성하는 기능은 다릅니다.

tempdb의 데이터베이스 파일은 항상 로컬 SSD 드라이브에 자동으로 저장되므로 I/O 성능은 문제가 되지 않습니다.

SQL Server 전문가는 둘 이상의 데이터베이스 파일을 사용하여 tempdb 테이블의 할당을 분할하는 경우가 많습니다. Azure SQL Database의 경우 파일 수는 vCore 수(예: vCore 2개는 파일 4개와 같음)에 따라 최대 16개로 조정됩니다. 파일 수는 tempdb에 대해 T-SQL을 통해 구성할 수 없지만 배포 옵션을 변경하여 구성할 수 있습니다. tempdb의 최대 크기는 vCore 수에 따라 조정됩니다. vCore와는 별개로 SQL Managed Instance를 통해 12개 파일을 얻습니다.

데이터베이스 옵션 MIXED_PAGE_ALLOCATIONOFF로 설정되고 AUTOGROW_ALL_FILESON으로 설정됩니다. 이를 구성할 수는 없지만 SQL Server와 마찬가지로 이것이 권장되는 기본값입니다.

과도한 래치 경합을 완화할 수 있는 SQL Server 2019에 도입된 tempdb 메타데이터 최적화 기능은 현재 Azure SQL Database 또는 Azure SQL Managed Instance에서 사용할 수 없습니다.

데이터베이스 구성

일반적으로 T-SQL ALTER DATABASE 및 ALTER DATABASE SCOPED CONFIGURATION 문으로 데이터베이스를 구성합니다. Azure SQL에는 성능을 위해 많은 구성 옵션을 사용할 수 있습니다. SQL Server, Azure SQL Database 및 Azure SQL Managed Instance 간의 차이에 대해서는 ALTER DATABASEALTER DATABASE SCOPED CONFIGURATION T-SQL 참조를 참조하세요.

성능의 경우 변경할 수 없는 옵션 중 하나는 데이터베이스의 복구 모델입니다. 기본값은 전체 복구입니다. 이 경우 데이터베이스는 Azure SLA(서비스 수준 계약)를 충족할 수 있습니다. 따라서 대량 작업에 대한 최소 로깅은 지원되지 않습니다. tempdb에는 대량 작업을 위한 최소 로깅이 지원됩니다.

파일 및 파일 그룹

SQL Server 전문가는 파일 및 파일 그룹을 사용하여 실제 파일 배치를 통해 I/O 성능을 개선하는 경우가 많습니다. Azure SQL에서는 사용자가 특정 디스크 시스템에 파일을 저장할 수 없습니다. 하지만 Azure SQL은 속도, IOPS 및 대기 시간과 관련하여 I/O 성능에 대한 리소스 약정을 보유하고 있습니다. 이러한 방식으로 실제 파일 배치에서 사용자를 추상화하는 것이 유용할 수 있습니다.

Azure SQL Database에는 데이터베이스 파일이 하나뿐이며(일반적으로 하이퍼스케일에는 여러 개 있음) Azure 인터페이스를 통해 최대 크기가 구성됩니다. 추가 파일을 만드는 기능은 없습니다.

Azure SQL Managed Instance는 데이터베이스 파일 추가 및 크기 구성을 지원하지만 파일의 물리적 배치는 지원하지 않습니다. SQL Managed Instance의 파일 수와 파일 크기를 사용하여 I/O 성능을 개선시킬 수 있습니다. 또한 관리 목적으로 SQL Managed Instance에 대해 사용자 정의 파일 그룹이 지원됩니다.

MAXDOP 구성

MAXDOP(최대 병렬 처리 수준)는 개별 쿼리의 성능에 영향을 미칠 수 있습니다. SQL Server와 Azure SQL은 동일한 방식으로 MAXDOP를 처리합니다. 다음 기술을 사용하여 Azure SQL에서도 SQL Server와 유사하게 MAXDOP를 구성할 수 있습니다.

  • Azure SQL에서 MAXDOP를 구성하기 위한 ALTER DATABASE SCOPED CONFIGURATION이 지원됩니다.
  • SQL Managed Instance에 대해 “최대 병렬 처리 수준”에 대한 저장 프로시저 sp_configure가 지원됩니다.
  • MAXDOP 쿼리 힌트가 완전히 지원됩니다.
  • SQL Managed Instance에 대해 Resource Governor를 사용하는 MAXDOP 구성이 지원됩니다.

관리

Resource Governor는 I/O, CPU 및 메모리를 통해 워크로드에 대한 리소스 사용량을 제어하는 데 사용할 수 있는 SQL Server의 기능입니다. 사용자 정의 작업 그룹 및 풀의 경우 SQL Managed Instance에 대해 Resource Governor가 지원되지만 Azure SQL Database에 대해서는 지원되지 않습니다.

인덱스 유지 관리

Azure SQL의 인덱스 만들기 및 유지 관리는 SQL Server의 경우와 정확히 동일합니다. 예를 들어 인덱스 만들기, 다시 작성 및 다시 구성은 SQL Server의 경우처럼 완전히 지원됩니다. 여기에는 온라인 및 다시 시작 가능한 인덱스가 포함됩니다.

통계 유지 관리

SQL Server와 Azure SQL은 동일한 방식으로 통계를 처리합니다. 데이터베이스에 대한 자동 통계 옵션은 두 가지 모두에서 사용할 수 있습니다.

지금까지 Azure SQL의 성능에 대한 몇 가지 구성 및 유지 관리 옵션을 살펴보았으므로 이제 그 다음 단원을 진행하기 전에 다음 지식 점검을 완료하세요.

지식 점검

1.

tempdb의 파일 수는 어떤 메서드를 통해 Azure SQL Database에 대해 구성 가능합니까?

2.

Azure SQL Database에 대한 I/O 성능을 어떤 메서드를 통해 구성할 수 있습니까?

3.

Azure SQL을 사용하여 인덱스를 유지 관리하려면 어떻게 해야 하나요?