이전의 EF Core에서는 LINQ의 GroupBy()
사용 시 SQL로 제대로 변환되지 않아 모든 데이터를 메모리로 가져와 그룹화하는 비효율이 있었습니다. 이는 성능 저하와 메모리 사용 증가를 초래했습니다. 그러나 EF Core 6+부터는 GroupBy()
를 SQL로 적절히 변환하여 데이터베이스 레벨에서 그룹화를 수행합니다. 이를 통해 메모리 사용량을 줄이고 성능을 향상시켰습니다.
예를 들어, 제품별 매출 합계를 계산할 때 이전에는 모든 주문을 메모리에 로드하고 그룹화했지만, 이제는 SQL로 직접 그룹화하여 효율적으로 처리합니다. 월별 매출 보고서 생성, 제품별 주문 수 계산, 각 제품의 최고가 주문 찾기 등에서도 성능 개선을 경험할 수 있습니다.
다만, 복잡한 객체 투영이나 네비게이션 속성을 사용한 그룹화, 클라이언트와 서버 연산을 혼합하는 경우에는 여전히 메모리 내 처리가 발생할 수 있습니다.
EF Core의 이러한 개선으로 개발자는 더 빠르고 효율적인 쿼리를 작성할 수 있게 되었고, 데이터베이스가 본연의 역할인 데이터 처리를 효과적으로 수행하도록 할 수 있습니다.