증상(문제)
- 계산식이 작동되는 시간이 너무 오래 걸리는 문제
원인
- 작성한 계산식을 코드로 입력하여 실제 계산을 진행하였는데, 시간이 너무 오래걸렸다
- 동대문구, 커피전문점 기준 약 2분
- 원인은 계산을 위해 잦은 DB의 접근, 특히나 덩치가 큰 DB에 접근하는 횟수가 많은 것으로 판단했다.
결과(해결방안)
- DB에 접근하는 횟수가 적어질 수록 빨라질 것이라 판단하여, 계산식을 작동시키면 먼저 필요한 데이터를 전부 DB에 접근하여 받아온 다음 계산식이 진행되는 동안에는 DB에 접근하지 않도록 프로그래밍함
- 그 결과, 생각 이상으로 시간을 줄이는 데 성공함
- 동대문구, 커피전문점 기준 약 12초
참고할 코드나 스크린샷
public List<AnnualEvaluationScoreModel> GetAnnualEvaluationScoreModels(int upperLocationId, int fieldId)
{
// 미리 DB에 접근하여 필요한 만큼 데이터를 가져오는 부분
List<Station> stations = Dao.Station.GetByUpperLocation(upperLocationId);
List<LandPriceIndex> landPriceIndices = Dao.LandPriceIndex.GetByLocation(upperLocationId);
List<Competitor> competitors = Dao.Competitor.GetByField(fieldId);
// 계산을 진행하여 모델을 생성하는 부분. DB에 접근할 일이 없이 컬렉션의 데이터로 계산을 진행한다
List<AnnualEvaluationScoreModel> models = new List<AnnualEvaluationScoreModel>();
foreach(var station in stations)
{
// ...
}
// ...
return models;
}
증상(문제)
원인
결과(해결방안)
참고할 코드나 스크린샷