전용 시스템의 Azure SQL 데이터베이스와 MS SQL Server 비교
현재 MS SQL Server 2014(12.1.4100.1) 인스턴스를 월 270달러에 임대하는 전용 시스템에서 실행하고 있습니다.
- Intel Xeon E5-1660 프로세서(6개의 물리적 3.3GHz 코어 + 하이퍼스레딩 + 터보->3.9GHz)
- 64GB 등록 DDR3 ECC 메모리
- 240GB Intel SSD
- 45000GB 대역폭 전송
저는 Azure SQL Database를 잠시 사용하면서 플랫폼으로 전환하는 것을 즐겼습니다.V12 서버에서 P2 Premium 가격 계층을 사용하여 Azure SQL 데이터베이스를 시작하고(테스트를 위해), 전용 시스템에서 기존 데이터베이스의 복사본을 로드했습니다.
여러 쿼리 세트를 나란히 실행했는데, 하나는 전용 시스템의 데이터베이스에 대해, 다른 하나는 P2 Azure SQL 데이터베이스에 대해 실행했습니다.결과는 다소 충격적이었습니다. 실행 시간 측면에서 제 전용 기계가 Azuredb를 매번 큰 차이로 능가했습니다.일반적으로 전용 db 인스턴스는 Azure db를 실행하는 데 걸리는 시간의 1/2에서 1/3 미만으로 완료됩니다.
이제 Azure 플랫폼의 많은 이점을 이해했습니다.전용 시스템에서 관리되는 설정과 관리되지 않는 설정이 비교되며, 사용자가 보유한 설정보다 더 나은 시점 복원 기능을 제공하고, 방화벽을 쉽게 구성하고, 지리적 복제 기능을 제공하는 등의 기능을 참조하십시오.하지만 데이터베이스에는 수백 개의 테이블이 있고 각 테이블에는 수천만 개에서 수억 개의 레코드가 있으며, 때때로 여러 조인 등을 통해 쿼리를 수행해야 하므로 실행 시간 측면에서 성능이 중요합니다.한 달에 최대 930달러의 서비스가 한 달에 270달러의 전용 기계 대여에 버금가는 저조한 성능을 발휘한다는 것은 정말 놀라운 일입니다.저는 아직 SQL 전반에 익숙하지 않고 서버 등에 대해서도 잘 모릅니다. 하지만 이것이 다른 사람들에게 도움이 되지 않습니까?제가 여기서 놓치고 있는 것에 대한 통찰력을 가진 사람이 있습니까? 아니면 Azure SQL Database의 다른 "관리형" 기능이 가격 차이를 메울 예정입니까?
중요한 것은 제 전용 시스템의 기능조차도 확장하기 시작했다는 것입니다. 저는 Azure의 SQL 데이터베이스가 다음 발판이 되기를 진심으로 바라고 있었습니다. 하지만 제가 무언가를 놓치고 있는 것이 아니라면 그렇지 않습니다.저는 아직 너무 작은 사업체이기 때문에 다른 플랫폼에 수십만 달러를 투자할 수 없습니다.
혹시 제가 놓친 부분이 있는지, 아니면 제가 보고 있는 공연이 여러분이 기대하는 것과 일치하는지에 대해 조언을 해주실 분 있나요?현재 실행 중인 전용 시스템보다 더 나은 성능을 제공할 수 있는 다른 옵션이 있습니까? 하지만 몇 만 달러/월의 비용은 들지 않습니다.실행 시간을 단축할 수 있는 Azure SQL 데이터베이스에 대해 수행할 수 있는 작업(구성/설정)이 있습니까?다시 한번 도움을 주시면 감사하겠습니다.
편집: 제 질문을 좀 더 명확히 하기 위해 수정하겠습니다. 단순히 실행 시간 성능 면에서 제가 보고 있는 것은 $270/월 전용 서버가 $930/월 마이크로소프트의 Azure SQL DB2 Tier를 능가하는 성능을 기대할 수 있을까요?관리되는 경우와 관리되지 않는 경우와 같은 다른 "특권"은 무시하고, 프로덕션을 위한 Azure와 같은 의도된 사용은 무시합니다.Azure SQL DB에 누락된 부분이 있는지, 아니면 단일 전용 시스템에서 훨씬 더 나은 성능을 얻을 수 있는지만 알면 됩니다.
(거부자:Microsoft에서 근무하지만 Azure 또는 SQL Server에서는 근무하지 않습니다.
"Azure SQL"은 "SQL 서버"와 동일하지 않습니다. 개인적으로 Azure SQL 대신 "호스트형 SQL 서버"를 제공했으면 합니다.
표면적으로는 둘 다 동일합니다. 둘 다 T-SQL의 기능을 가진 관계형 데이터베이스 시스템입니다. 둘 다 동일한 DBMS를 사용합니다.
Azure SQL은 로컬 SQL 서버를 사용하는 개발 데이터베이스(2012년 이상)와 Azure SQL의 운영 데이터베이스라는 두 개의 데이터베이스가 있다는 점에서 다릅니다.Azure SQL 데이터베이스를 직접 수정해서는 안 되며, SSMS는 Azure SQL에 대한 설계 도구(Table Designer, View Designer 등)를 제공하지 않습니다.대신 로컬 SQL 서버 데이터베이스를 설계하고 사용하여 "DACPAC" 파일(또는 SSDT에서 생성할 수 있는 특별한 "변경" XML 파일)을 생성한 다음 일종의 "설계 복제" 시스템인 개발 DB를 복사하도록 Azure DB를 수정합니다.
그렇지 않으면 Azure SQL은 내장된 복원력, 백업, 간소화된 관리 등을 제공합니다.
성능과 관련하여 인덱스 또는 기타 최적화를 누락했을 가능성이 있습니까?또한 로컬 SQL 서버에 비해 Azure SQL의 대기 시간이 약간 길다는 것을 알 수 있습니다. (Azure VM에서 Azure SQL 호스트로) ping 시간은 약 5-10ms입니다.즉, 페이지 로드 시간을 줄이기 위해 프로그램을 덜 대화형으로 설계하거나 데이터 검색 작업을 병렬로 수행해야 합니다(이것이 빌드 중인 웹 응용 프로그램인 경우).
성능과 가용성 외에도 고려해야 할 몇 가지 중요한 요소가 있습니다.
- 총 비용: 270달러의 임대 비용은 여러 가지 비용 요소 중 하나에 불과합니다.공간, 전력 및 HVAC는 기타 물리적 비용입니다.그리고 관리 비용이 있습니다.윈도우즈 또는 SQL 서버 중 하나가 서비스 팩 또는 누적 업데이트를 제공하는 경우 각 패치를 화요일에 수행해야 한다고 생각합니다.출시 전에 테스트하지 않더라도 시간과 노력이 필요합니다.테스트를 수행하면 두 번째 시스템이 있고 테스트를 위해 제품 인스턴스와 워크로드를 복제합니다.
- 보안: 중요한 데이터를 클라우드에 저장하는 것이 얼마나 나쁘고 위험하며 위험한지에 대한 많은 내용이 기록되어 있습니다.개인적으로, 저는 주요 클라우드 공급자(Microsoft, Amazon, Google)보다 로컬 서버(은행 및 연방 기관)의 보안 구현 및 프로세스가 훨씬 더 열악한 것을 보았습니다.일을 제대로 하는 것보다 더 많은 일을 하는 것이 더 많은 일입니다.또한 보안 SLA를 확인하고 감사할 수 있습니다(http://azure.microsoft.com/en-us/support/trust-center/) 의 Azure를 참조하십시오).
- 확장성: 물리적 확장성뿐만 아니라 확장에 드는 비용과 노력도 고려해야 합니다.Azure SQL DB는 최근 테스트한 P2의 7배에 달하는 컴퓨팅 용량을 갖춘 거대한 P11 에디션을 출시했습니다.스케일업 및 스케일다운은 즉각적으로 수행되는 것이 아니라 매우 쉽고 합리적인 속도로 수행됩니다.가장 좋은 점은 큰 쿼리를 실행하거나 재색인 작업을 실행할 때 상위 버전으로 이동한 후 "정상" 로드에 대해 다시 다운될 수 있다는 것입니다.일반 SQL 서버를 베어메탈로 사용하는 경우에는 90%의 시간을 유휴 상태로 유지하는 큰 박스를 임대/구입하거나 이동하는 데 다운타임이 걸립니다.VM의 경우 약간 더 쉬워집니다. 온라인으로 메모리를 늘릴 수 있지만 CPU를 늘리기 위해 인스턴스를 바운스해야 합니다. 스케일업/스케일다운 작업 중에도 Azure SQL DB는 온라인 상태를 유지합니다.
Microsoft에서 Azure SQL DB로 대체할 수 있습니다.
"Azure에서 SQL Server 가상 시스템 프로비저닝"
https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-provision-sql-server/
두 제품의 차이점에 대한 자세한 설명: "Azure VM에서 Azure SQL 데이터베이스 및 SQL 서버 이해"
독립 실행형 SQL 서버와 Azure SQL DB의 중요한 차이점 중 하나는 SQL DB를 사용하면 서로 다른 시스템에서 여러 인스턴스를 실행하여 높은 수준의 가용성을 실현할 수 있다는 것입니다.이는 전용 시스템 4대를 대여하여 상시(AlwaysOn) 가용성 그룹에서 실행하는 것과 마찬가지로 비용과 성능이 모두 변경됩니다.하지만 가용성에 대해서는 언급하지 않으셨기 때문에 시나리오에서는 문제가 되지 않을 것입니다. VM의 SQL 서버가 귀사의 요구 사항에 더 적합할 수 있습니다.
SQL DB에는 성능에 영향을 미칠 수 있는 내장 가용성, 시점 복원 기능 및 DR 기능이 있습니다.사용량에 따라 DB를 확장/축소하여 비용을 절감할 수 있습니다.글로벌 쿼리(하드 데이터)를 사용하여 쿼리 성능을 향상시킬 수 있습니다.SQL DB는 자동 업그레이드 및 패치 적용을 관리하고 관리성을 크게 향상시킵니다.당신은 그것을 위해 약간의 보험료를 지불해야 할 수도 있습니다.애플리케이션 레벨 캐슁/부하를 고르게 분산하고, 콜드(Cold) 상태일 때 다운그레이드하는 등의 방법으로 데이터베이스 성능을 향상시키고 비용을 최적화할 수 있습니다.
언급URL : https://stackoverflow.com/questions/32420311/azure-sql-database-vs-ms-sql-server-on-dedicated-machine
'programing' 카테고리의 다른 글
Flutter 및 Android Studio를 설치한 후 "cmdline-tools 구성 요소가 없습니다" 오류가 발생합니다.안드로이드 SDK를 추가했습니다.어떻게 해결할 수 있을까요? (0) | 2023.05.31 |
---|---|
루비: 해시 키를 필터링하는 가장 쉬운 방법은? (0) | 2023.05.31 |
GitHub 풀 요청을 수행하는 방법 (0) | 2023.05.31 |
레일 3: 랜덤 레코드 가져오기 (0) | 2023.05.31 |
프로젝트를 열 수 없습니다...프로젝트 파일을 구문 분석할 수 없으므로 열 수 없습니다. (0) | 2023.05.31 |