매우 느린 ToListAsync ()와 ToList () 비교

asp.net-core-mvc entity-framework-core

문제

그룹화와 함께 복잡한 LINQ 쿼리를 포함하고 있습니다. 나는 ToListAsync ()가 두 번째 단계를 완료하고 ToList ()가 몇 초 만에 리턴한다는 것을 알았다.

allReservationsList = allReservations.ToList(); // fast
allReservationsList = await allReservations.ToListAsync(); // more then a second for 60 rows

틀린 일을하고 있거나 엔티티 프레임 워크에 문제가 있습니까?

다음은 쿼리입니다.

            var reservations = db.Reservations
                .Include(r => r.PickUpLocation)
                .Include(r => r.ReturnLocation)
                .Include(r => r.RequestedVehicleModel).ThenInclude(m => m.Photos)
                .Include(r => r.RequestedVehicleModel.VehicleType.VehicleModels)
                .Include(r => r.RequestedVehicleType).ThenInclude(t => t.Photos)
                .Include(r => r.AssignedUnit.VehicleModel.VehicleType)
                .Include(r => r.DailyPrice.Currency);

            var allReservations =
                from r in reservations
                orderby r.VersionDate descending
                group r by r.BookingCode into g
                select g;

인기 답변

변수가 너무 많습니다. 그러나 일반적으로 비동기 메서드는 동기화 메서드보다 반환하는 데 더 오래 걸립니다. 단순히 async에 오버 헤드가 더 많이 걸리기 때문입니다. 그것이보고있는 전체 지연을 설명하든 그렇지 않든, 최소한 제공 한 정보로는 말할 길이 없습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.