2012-07-17 1 views
0

다음 시나리오가 있습니다. 제공된 사이트 세부 정보 입력에 대한 가격을 생성하는 하나의 텔레콤 기반 프로젝트에서 작업하고 있습니다.성능 관련 문제

입력 내용이 Excel 시트 형식으로 전달되고 해당 출력이 gridview에 표시됩니다.

출력 그리드에는 사이트 세부 정보를 기반으로 채워지는 두 개의 드롭 다운 목록이 있습니다. 즉, 데이터베이스를 치는 것으로 채워지는 gridview의 모든 행에 두 개의 드롭 다운이 있음을 의미합니다.

현재이 도구는 200 개의 사이트에서 제대로 작동하지만 현재는 Excel 시트에서 10,000 개의 사이트를 입력으로 전달하려고합니다.

10,000 개의 사이트에 대해 데이터베이스를 치는 것은 매우 지루한 작업이며 시스템 성능이 저하됩니다.

나는 sql server 2008

는 사람이 작업을 할 수있는 최상의 방법에 대한 해결책이 있습니까 C# 및 데이터베이스를 사용 asp.net 3.5을 사용하고?

+0

데이터의 설정을보다 명확하게 설명 할 수 있습니까? 모든 드롭 다운 목록이 동일합니까? 그렇다면 가능한 옵션을 한 번만 가져 와서 모든 목록을 바인딩해야합니다. 당신이하는 일이 명확하지 않습니다. 어쩌면 최소한의 코드로 설명 할 수 있을까요? – David

+0

하나의 DB 히트에서 필요한 세부 사항을 모두 얻지 못하는 이유는 무엇입니까? – Shailesh

+0

데이터가 자주 변경되지 않으면 (EG, 하루에 한 번 변경) 단순히 데이터를 캐시하지 않고 데이터베이스 호출이 필요 없으며 다른 MQ, 샤딩, 클러스터링,로드 밸런서 등을 도입 할 필요가 없습니다. – Kane

답변

0

여기에는 확장 성이 핵심 요소입니다.

ActiveMQ 또는 RabbitMQ와 같은 것을 사용하면 일부 프로세스를 비동기 적으로 만들 수있는 경우 가능한 경우 부하 분산을 활용해야합니다. 그러면 UI 중단이 중지됩니다.

클러스터 된 DB 서버도 고려하십시오.

목표는 항상 사용자 피드백 (비동기 피드백), 보증 작업 처리 (대기열/메시지 시스템), 많은 사용자 처리 (로드 균형 조정)를 제공해야합니다.

Theres는 코드 최적화를 위해 많은 것을 말하며 코드를 살펴보고 모든 영역에서 "지방을 다듬어"속도를 향상시킬 수 있는지 확인하십시오.

+0

클러스터는이 시나리오에 어떤 도움을 줍니까? –

+0

@AaronBertrand 웹 클러스터 또는 DB 클러스터? 웹 클러스터를 사용하면 더 많은 사이트에서 동시에 사용할 수 있으므로 DB 클러스터는 두 웹 서버가 두 개의 서로 다른 DB에 통신하고 네트워크 대역폭에 대한 제한없이 정보를 밀어 넣을 수 있습니다. 많은 양의 데이터를 전송합니다. –

+1

단일 인스턴스 클러스터가 작동하는 방식이 아닙니다. 이는 동시 중복을 위해가 아니라 장애 조치를위한 것입니다. 주어진 시간에 활성 노드의 인스턴스에만 말할 수 있습니다.다중 인스턴스 클러스터를 설정할 수는 있지만 데이터 병합을 처리해야합니다. 클러스터링되지 않은 두 개의 별도의 인스턴스와 비교할 때 성능상의 이점을 누릴 수 있을지 확신 할 수 없습니다. 맡은 일. –