LINQ의 WHERE IN 절을 사용하여 성능 향상
대규모 데이터 세트로 작업할 때는 코드 효율성이 매우 중요합니다. SQL Server에서 WHERE IN 절을 사용하면 지정된 범위 내의 여러 값을 기반으로 레코드를 필터링할 수 있습니다. 이는 여러 OR 조건을 사용하는 것에 비해 쿼리 성능을 크게 향상시킬 수 있습니다.
LINQ(Language-Integrated Query)는 C# 개발자에게 유사한 기능을 제공합니다. 그러나 기본 구문은 최적의 성능을 제공하지 못할 수 있습니다. 이 문서에서는 LINQ에서 WHERE IN 쿼리를 수행하는 보다 효율적인 접근 방식을 제시합니다.
다음 코드 블록을 고려하세요.
public List<State> Wherein(string listofcountrycodes) { string[] countrycode = listofcountrycodes.Split(','); List<State> statelist = new List<State>(); for (int i = 0; i < countrycode.Length; i++) { _states.AddRange( from states in _objdatasources.StateList() where states.CountryCode == countrycode[i].ToString() select new State { StateName = states.StateName }); } return _states; }
이 코드는 각 값에 대해 일련의 쿼리를 수행합니다. 국가 코드 목록 배열에 있습니다. 작업을 완료하는 동안에는 효율성이 떨어집니다.
성능을 향상시키기 위해 다음과 같은 간결한 LINQ 표현식을 사용할 수 있습니다.
dataSource.StateList.Where(s => countryCodes.Contains(s.CountryCode))
이 표현식에서는 StateList에 있는 각 주의 CountryCode가 countryCodes 배열에 있는지 확인하는 Contains() 메서드입니다. 모든 조건을 단일 표현식으로 결합함으로써 여러 쿼리를 실행하는 데 따른 성능 오버헤드를 방지합니다.
이러한 최적화된 접근 방식을 사용하면 특히 대규모 데이터 세트로 작업할 때 쿼리 속도가 크게 향상됩니다. LINQ에서 WHERE IN 작업을 수행하는 더 깔끔하고 간결한 방법을 제공하여 코드를 더 효율적이고 유지 관리하기 쉽게 만듭니다.
위 내용은 더 나은 성능을 위해 LINQ의 WHERE IN 쿼리를 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!