2012-10-18 3 views
0

5000 개의 레코드가 있습니다. 한 명의 사용자에 대한 급여를 계산하고 데이터베이스에서 데이터를 업데이트합니다. 따라서 5000 개의 레코드를 업데이트하는 데 오랜 시간이 걸립니다. 모든 사용자의 급여를 먼저 계산 한 다음 db의 레코드로 업데이트하려고합니다. 한 번의 클릭으로 db를 업데이트 할 수있는 다른 방법이 있습니까레코드를 하나씩 업데이트하십시오.

+1

자세한 내용을 알려주십시오. "5000 단위로 월급 계산"이란 의미는 무엇입니까? –

+2

급여 계산 방법을 알려 주시면 도움이 될 것입니다. –

+0

문제에 대한 세부 정보가 필요합니다. –

답변

0

실제로 데이터 액세스 계층을 관리하는 방법과 계산에 필요한 데이터는 무엇입니까? 필요로하는 모든 데이터를 하나의 테이블 또는 다른 테이블에서 다른 데이터를 가져 오는 데 필요한 각 레코드에 준비 했습니까?

한 가지 방법은 각 레코드를 검색하고 트랜잭션에서 계산을 수행 한 다음 데이터베이스에 저장하는 것입니다. 이런 방식으로 ajax UI를 활용하여 사용자에게 계산 진행 상황을 알릴 수 있습니다. 이런 식으로 SqlDataReader를 사용하여 데이터를 매우 효율적으로 가져오고 DataSet 및 DataTable을 사용하는 것보다 오버 헤드가 적고 여러 유형 캐스팅을 방지 할 수 있습니다. 또한 TPL을 활용하여 최적화 할 수도 있고 매번 N 개의 레코드를 가져 오거나 업데이트 할 수 있도록 구성 할 수도 있습니다. 이 접근법은 레코드의 ID가 있으면 작동합니다. 또한 다시 연결하지 않고 계산을 다시 시작할 수 있도록 연결이 끊어 지거나 충돌 또는 iisreset 실행이있을 때 계산을 추적 할 레코드 필드가 있어야합니다.

관련 문제