2014-04-18 3 views
0

프로덕션 환경에서 SQL Server 아키텍처에 대한 최선의 방법을 이해하고 싶습니다. 나는 평균 약 20,000 레코드를 여러 테이블에서 매 초마다 삽입되는이 데이터베이스가프로덕션 환경의 SQL Server 아키텍처

:

여기 내 문제입니다.

우리는 보고서가 동일하게 구현되었으므로 보고서가 사용자별로 검색 될 때마다 다른 애플리케이션의 성능이 떨어집니다.

우리는

  • 테이블 파티셔닝
  • 인덱싱
  • 그리고 다른 모든 필요한 것들을 구현했습니다.

내 질문은 : 누구든지 보고서 및 응용 프로그램에 대해 서로 다른 SQL Server 데이터베이스를 가지고 있고 마스터 SQL Server에 새 데이터가 입력 될 때마다 온라인으로 동기화 할 수 있습니까?

일부는 마스터 및 슬레이브 아키텍처를 좋아합니다. 나는 마스터와 슬레이브 아키텍쳐를 이해하고 있지만, 주위에 더 많은 아이디어를 얻을 필요가있다.

우리의 주요 테이블은 데이터베이스 미러링 및 동기화에 두 개의 데이터베이스를 유지합니다 사용할 수 복제를 가지고 SQL 서버 2008R2에서 (다 테이블 파티셔닝)

+0

다른 데이터베이스로는 저장되지 않습니다. 서버에있는 리소스를 모두 소모하고 있습니다. 디스크 또는 CPU. 또한 차단 문제 일 수 있습니다. 2 차 데이터베이스로 핵을 사용하는 대신 진단하고 고쳐야합니다. 스냅 샷 격리를 조사하십시오. – usr

+0

나는 CPU와 RAM, 즉 64 코어 CPU와 132GB RAM을 충분히 가지고있다. 나는 어느 정도까지 그것을 다 써 버릴 위험이있다. 병목 현상, 교착 상태 등을 파악하고 팀과 함께 해결해야합니다. 최고의 아키텍처로 경영진에게 확실한 지적을하고 싶습니다. –

+0

나는 그 진술을 얻지 못했다. 문제가 이미 해결 되었습니까? 실제로 CPU를 다 써 버리는 것은 아니지만 디스크를 다 써 버릴 수도 있습니다. 별도의 데이터베이스는 필요한 솔루션보다 문제가 많기 때문에 거의 항상 올바른 솔루션이 아닙니다. – usr

답변

1

을 약 40 백만 행을 가지고있다.

OLTP에 효율적인 스키마는 대용량보고에 효율적이지 않을 수 있습니다. '라이브'및 '보고'데이터베이스는 ETL 프로세스가 서로 다른 스키마를 가져야합니다. 나는보고 데이터베이스가 어떻게 동기화되어야 하는지를 비즈니스와 협상하고 싶습니다. 보고서가 많은 양의 데이터를 처리하는 경우 실행하는 데 시간이 걸리므로 데이터 복제 지연이 눈치 채지 못할 것입니다. 극단적 인 경우에서 Service Broker를 사용하여 데이터를 이동하고보고 서버에서 처리하여보고 테이블에 배포하는 솔루션을 구성 할 수 있습니다.

인용 부호가있는 숫자 (초당 20,000 개의 삽입, 가장 큰 테이블에서 40 백만 행)는 레코드가 DB에 오래 머무르지 않는다고 제안합니다. 상당한 부하가 DELETE 초가 걸릴 것입니다. 피크 시간대를 초과하여이를 최적화하면 문제를 해결하는 데 충분할 수 있습니다.

+0

Michael은 Service Broker에 대해 자세히 조사 할 것입니다. 테이블의 데이터가 항상 존재하기 때문에 우리는 테이블 프리 타이 징을 했으므로 회계 연도에 파티션이 완료되었습니다. 라이브 및보고 데이터베이스가 다른 스키마에 있음을 지적 할 것입니다. –

관련 문제