건물에있는 사이트가 있는데, 사용자 환경 설정에 따라 메일 병합을 만드는 응용 프로그램입니다. 문제없이 데이터의 데카르트 조인을 생성 할 수 있지만 삶을 좀 더 어렵게 만드는 기업의 요구가 있습니다 ...대형 데이터 집합 (SQL에서 C#으로), 긴로드 시간 수정
원격 직원의 우편 번호를 확인한 후, 미디어 대상이 해당 직원과 얼마나 멀리 떨어져 있는지를 기준으로 미디어 대상에 대한 전자 메일을 생성합니다. 예를 들어 직원들이 일하는 유명한 자원 봉사자라고 가정 해 봅시다. 기업은이 직원들의 반경 5 마일 이내에있는 미디어에 직원이 수행하는 작업에 관한 메시지를 전자 메일로 보내려고합니다.
이최대 반경 20 마일이 상황이 혼란스러워 어디에 ... 내가 시도와 실패를 개설 것이다, 여기에 몇 가지 선택이있다. 미국 내 모든 우편 번호 레코드를 보유하고있는 데이터베이스 테이블을 만들고 우편 번호의 20 마일 이내에있는 모든 우편 번호에 가입합니다. 데이터 세트는 다음과 유사합니다 (이름이 다릅니다. 이는 인수를위한 것입니다).
[SourceZip] | [도시] | [주 | [CloseZip] | [도시] | [주 | [거리]
실패 : 예를 들어 NY는 위의 데이터 세트에서 350k 개의 레코드를 가지고 있습니다 (다른 주에서는 더 나쁩니다!). 해당 페이지의 평균로드 시간은? 6 분 ... 일어나지 않아. 중단 점을 설정하여이를 확인했습니다. 단절이 발생하는 것은 dataadapter.fill() 단계에서입니다.(이것은 물류 문제로 인해 절대로 구현되지 않았습니다.) x 이하의 거리를 가진 미디어 대상 zip에 대한 각 직원 zip에 대한 데이터베이스 연결을 만듭니다. 소스 파일과 미디어 타겟을 결합하면 34,000 개 이상의 개별 이메일에 도달 할 수 있습니다. 34k DB 연결? 우편 번호 검색을 재사용 할 수있는 방법을 고안 할 수있을지라도 DB에서 몇 가지 테스트를 수행했으며 직원이 근무한 뉴욕에 500 개의 별개 우편 번호가 있다는 것을 알았습니다. 500 db 연결? 그게 효과가 있을지는 모르겠지만 놀랄 수 있습니다. 이 문제를 해결하기 위해
내 최신 방식은 웹 서버가 새로운 데이터 세트 보이는 얻어서 다음 .NET DataSet 개체를 더 나은 게임을 실행 희망이있는 같은 :
[우편] | [경도] | [위도]
그런 다음 거리 공식을 사용하여 데이터가 작동하는지 알아냅니다. 이것은 웹 서버의 프로세서에 크게 의존합니다. 이것은 가치있는 도박입니까, 아니면이 시도에서도 같은 로딩 시간의 피해를 볼 수 있습니까?더 좋은 방법이 있습니까?
이 프로젝트가일지도 모른다는 것에 대한 두려움이 있음에도 불구하고 아무리 감사하겠습니다.
추가 참고 : 나는 서버의 제어가없는, 내가 :(SQL2k을 실행하는거야 내가 비주얼 스튜디오 2005 프레임 워크 2.0의 사이트를 프로그래밍하고있어하는 SQL2005으로 업그레이드 얻을 수 있습니다.. 당신은 위도/경도 좌표와 우편 번호 데이터베이스가있는 경우 향후 몇 개월 이내에 VS2008는하지만.
아, 나는 내부 조인의 결과 집합에 내부 조인을 할 수 있는지 알지 못했습니다. 이 솔루션은 내가 필요한 것을 정확하게 생성합니다! 감사 –