애저 SQL. 성능 향상을 위해 데이터베이스 확장(읽기 전용)

애저 SQL. 성능 향상을 위해 데이터베이스 확장(읽기 전용)

꽤 많이 사용되는 데이터베이스가 있는데(요청의 거의 100%가 선택됨) 이제 데이터베이스에 병목 현상이 발생합니다.

우리는 이 데이터베이스를 수평으로 확장하고 여러 인스턴스에 걸쳐 요청을 로드 밸런싱할 수 있는 솔루션을 찾고 있었습니다.

완벽한 시나리오에서 우리가 찾고 있는 것은 인스턴스를 동적으로 추가-제거하는 방법입니다(Azure Web App의 인스턴스 크기를 조정하는 방법과 유사한 방식).

지금까지 내가 찾은 최고의 솔루션은 '읽기 전용 복제본을 사용하여 확장 읽기'입니다.https://docs.microsoft.com/en-us/azure/azure-sql/database/read-scale-out. 그리고 이것은 완벽한 솔루션처럼 보입니다. 유일한 문제는 거기에 어떻게 더 많은 복제본을 추가할 수 있는지 알 수 없다는 것입니다.

답변1

RDBMS는 일반적으로 어떤 방식으로든 데이터를 분할하지 않고 수평으로 확장할 수 없습니다. 또한 RDBMS의 데이터는 정규화되어야 하는데, 이는 모든 데이터 세트에 적합하지 않습니다.

주목해야 할 또 다른 사항은 동적 확장성이 자동 크기 조정과 다르다는 것입니다. 자동 크기 조정은 기준에 따라 서비스 크기가 자동으로 조정되는 반면, 동적 확장성을 사용하면 가동 중지 시간을 최소화하면서 수동 크기 조정이 가능합니다.

한 가지 가능한 해결책은 다음과 같습니다.단일 SQL 데이터베이스를 모니터링하고 확장하는 PowerShell 스크립트

또한 Cosmos DB로의 마이그레이션도 해결책이 될 수 있습니다.

관련 정보