성능 가속화 및 조정

완료됨

Azure SQL의 성능을 가속화하고 조정하는 옵션을 이해하는 것은 일관된 성능을 제공하는 데 있어 핵심입니다. 여기에는 CPU 용량의 크기를 스케일링하고, I/O 성능이 향상하고, 메모리와 작업자를 구성하고, 애플리케이션 대기 시간을 개선하고, 표준 SQL Server 조정 모범 사례를 적용하는 방법을 이해하는 것이 포함됩니다.

CPU 용량 크기 조정

리소스 요구에 맞게 CPU 수를 스케일링해야 할 수 있습니다. 온-프레미스 환경의 경우 VM을 다시 구성하고, 하드웨어를 변경하고, 데이터베이스를 마이그레이션해야 합니다. Azure SQL을 사용하면 사용자의 마이그레이션 작업 없이 이러한 작업을 수행할 수 있습니다. 포털, T-SQL, Azure CLI 또는 REST API를 사용하여 배포의 vCore 수를 스케일 업 또는 스케일 다운할 수 있습니다.

가동 중지 시간은 일반적으로 필요하지만 마이그레이션이 없을 경우 Azure SQL Database에서 훨씬 단축될 수 있습니다. 하이퍼스케일 배포를 사용하면 데이터 크기와 관계없이 계속해서 스케일 업할 수 있고, 서버리스 배포 방식을 사용하면 CPU 수요에 따라 자동 스케일링할 수 있습니다.

참고 항목

Azure SQL Managed Instance 크기 조정에는 상당한 시간이 걸릴 수 있지만 마이그레이션이 필요하지 않습니다.

I/O 성능

I/O 성능은 데이터베이스 애플리케이션에 중요할 수 있습니다. Azure SQL은 물리적 파일 배치에서 사용자를 추상화하지만 필요한 I/O 성능을 얻을 수 있는 방법을 제공합니다.

애플리케이션에 IOPS(초당 입출력)가 중요할 수 있습니다. IOPS 요구에 적합한 서비스 계층 및 vCore를 선택해야 합니다. Azure로 마이그레이션하는 경우 온-프레미스에서 쿼리의 IOPS를 측정하는 방법을 이해합니다. IOPS에 대한 제한이 있는 경우 I/O 대기 시간이 길어지는 것을 볼 수 있습니다. vCore 구매 모델에서는 IOPS가 충분하지 않은 경우 vCore를 스케일 업하거나 중요 비즈니스용 또는 하이퍼스케일 방식으로 전환할 수 있습니다. 프로덕션 워크로드의 경우 DTU를 사용할 때 프리미엄 계층으로 이동하는 것이 좋습니다.

I/O 대기 시간은 I/O 성능에 중요한 또 다른 구성 요소입니다. Azure SQL Database의 I/O 대기 시간을 단축하려면 중요 비즈니스용 또는 하이퍼스케일 방식을 사용하는 것이 좋습니다. SQL Managed Instance의 I/O 대기 시간을 단축하려면 중요 비즈니스용 방식으로 전환하거나 데이터베이스의 파일 크기 또는 파일 수를 늘립니다. 트랜잭션 로그 대기 시간을 단축하려면 다중 문 트랜잭션을 사용해야 할 수 있습니다.

메모리 또는 작업자 늘리기

애플리케이션 및 배포에는 충분한 메모리나 작업자를 유지하는 것이 중요할 수 있습니다. Azure SQL Database의 경우 더 높은 메모리 제한 또는 작업자를 유지하기 위해 vCore를 스케일 업합니다. SQL Managed Instance의 경우 더 높은 메모리 제한을 위해 vCore를 스케일 업합니다. 현재 SQL Managed Instance에서는 “최대 작업자 스레드 수”를 사용하여 작업자를 늘릴 수 있습니다.

애플리케이션 대기 시간 향상

모든 리소스 요구에 맞게 배포를 구성하는 경우에도 애플리케이션에서는 대기 시간 성능 문제가 발생할 수 있습니다. Azure SQL 애플리케이션에서는 다음 모범 사례를 따라야 합니다.

  • 프록시 대신 리디렉션 연결 형식 사용.
  • 저장 프로시저를 사용하거나 일괄 처리와 같은 기술을 통해 쿼리 왕복 횟수를 제한하여 “대화량이 많은” 애플리케이션을 최적화합니다.
  • 싱글톤 트랜잭션과 반대로 그룹화하여 트랜잭션을 최적화합니다.

SQL Server의 경우처럼 조정

Azure SQL도 여전히 SQL Server입니다. 그렇지만 Azure SQL을 사용하는 것보다 SQL Server 쿼리를 조정하고 다음 사항을 확인하는 것이 더 확실한 방법입니다.

  • 적절한 인덱스 디자인
  • 일괄 처리 사용
  • 저장 프로시저 사용
  • 캐시된 임시 쿼리가 너무 많이 발생하지 않도록 쿼리를 매개 변수화
  • 애플리케이션의 결과를 신속하고 정확하게 처리

다음 연습에서는 첫 번째 연습의 성능 문제를 해결하고 Azure SQL용 CPU 크기를 조정하여 문제를 개선합니다.