연결된 SQL Server에서 어떤 큰 제한이 예상됩니까?


9

우리의 제품은 Microsoft SQL Server를 기반으로합니다. 현재 우리는 세 개의 데이터베이스를 사용하고 있으며 항상 하나의 SQL Server 인스턴스에 배포했습니다.

세 데이터베이스는 OLTP, OLAP 및 감사입니다. OLAP 데이터베이스에는 데이터베이스 간 쿼리를 사용하여 OLTP 및 감사의 EOD에 대한 대규모 인바운드 데이터가 있습니다.

질문

이 세 데이터베이스를 단일 물리적 서버 내의 세 개의 별도 Standard Edition 인스턴스 에 배포 하고 SQL Server의 연결된 서버 기능을 사용하여 함께 바인딩하는 경우 :

  1. 응용 프로그램 코드가 얼마나 투명합니까? 얼마나 많은 변화를 기대해야합니까?
  2. OLAP에 대한 인바운드 데이터는 EOD 당 50-100k 행, 200-500MB 페이로드로 계산됩니다. 얼마나 많은 성능 저하가 예상됩니까?
  3. 다른 어떤 큰 제한이 있습니까?

배경

현재 우리는 500 명 이상의 동시 사용자로 잠재적 인 첫 번째 고객을 선발하고 있습니다.

64 코어와 256GB RAM을 포함하는 서버 사양을 작성 중입니다. SQL Server가 이러한 풍부한 리소스를 모두 활용하려면 클라이언트는 Enterprise Edition을 구매해야합니다. Enterprise Edition은 SQL Server 2016의 경우 코어 별 라이센스에서만 사용할 수 있습니다.

라이센스 비용만으로도 (64 x $ 7400) 라이센스 비용이 줄어들 것 같습니다. 따라서 데이터베이스를 Standard Edition의 세 가지 인스턴스로 분할하고 연결 기능이 응용 프로그램 코드에서 투명 해지기를 희망하면서 함께 연결하려고합니다.

답변:


14

응용 프로그램 코드가 얼마나 투명합니까? 얼마나 많은 변화를 기대해야합니까?

전혀 투명하지 않습니다. 주요 변경이 예상됩니다.

성능이 크게 저하 될 수 있도록 준비해야합니다.

분산 쿼리 (링크 된 서버의 프레임 워크)는 다른 쪽 끝에있는 서버가 무엇이든 일반적인 OLEDB 모델을 사용합니다. SQL Server 대상이보다 완전한 정보 (메타 데이터, 통계 등)를 제공 할 수는 있지만 결과는 여전히 밀접하게 통합되거나 기본 데이터베이스 간 작업만큼 강력하지 않습니다.

원격 쿼리는 성능이 느리고 옵티마이 저가 계획을 잘못 선택한 것으로 유명합니다. 기본 모델이 종종 커서의 모델이므로 데이터를 변경하는 명령문 (삭제, 삽입, 업데이트, 병합)이 특히 발생하기 쉽습니다.


당신이 수행 할 필요가 없습니다 경우 임시 크로스 인스턴스 쿼리를, 당신은 수있는 적절한 성능에 대한 각각의 저장된 쿼리를 손으로 조정할 수 있지만, 이것은 많은 일이며, 성공이 보장되는 것은 아니다.

크로스 인스턴스 대량 작업의 경우, 훨씬 더 실제 대량 작업을 개시 할 것 ( bcp, BULK INSERT, SSIS ... 등.) 연결된 서버를 사용하는 것보다 인스턴스간에.


그러나 기본 아이디어는 나에게 가치가있는 것보다 훨씬 더 문제가있는 것 같습니다. Standard Edition의 제약 조건 내에서 작동 할 하드웨어를 지정하십시오. 또는 클라이언트에 더 높은 성능이 필요한 경우 더 큰 서버를 확보하고 Enterprise Edition을 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.