Skip to content

계산식이 작동되는 시간이 너무 오래 걸리는 문제 #42

@dlehd333

Description

@dlehd333

증상(문제)

  • 계산식이 작동되는 시간이 너무 오래 걸리는 문제

원인

  • 작성한 계산식을 코드로 입력하여 실제 계산을 진행하였는데, 시간이 너무 오래걸렸다
  • 동대문구, 커피전문점 기준 약 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;
}

Metadata

Metadata

Assignees

Labels

Trouble작업 중 발생한 문제

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions