LINQ to SQL 효율적인 임의 행 검색
LINQ to SQL을 사용하여 데이터베이스에서 임의의 행을 검색할 때 클라이언트 측 필터링 및 무작위화에 의존하면 성능 문제가 발생할 수 있습니다. 다음 방법은 특정 기준과 일치하는 임의의 행을 검색하는 효율적인 방법을 제공합니다.
시뮬레이션된 사용자 정의 함수(UDF) 사용
중소형 테이블의 경우 모의 UDF를 사용하여 데이터베이스 수준에서 무작위 작업을 수행할 수 있습니다. 데이터 컨텍스트에서 부분 클래스를 정의하고 다음 메서드를 추가합니다.
<code class="language-csharp">partial class MyDataContext { [Function(Name="NEWID", IsComposable=true)] public Guid Random() { throw new NotImplementedException(); } }</code>
이 UDF는 실제로 C# 코드로 구현되지는 않지만 SQL Server에서 무작위 순서 지정을 수행하는 데 사용됩니다. 조건에 따라 임의의 행을 검색하려면 다음 쿼리를 사용하십시오.
<code class="language-csharp">var cust = (from row in ctx.Customers where row.IsActive // 您的筛选条件 orderby ctx.Random() select row).FirstOrDefault();</code>
개수 기반 방법
큰 테이블의 경우 개수 기반 접근 방식이 더 효율적일 수 있습니다. 작동 방식은 다음과 같습니다.
qry.Count()
을 사용하여 총 행 수를 계산합니다. qry.Skip(index).FirstOrDefault()
을 사용하세요. 이 방법에는 데이터베이스에 대한 두 번의 왕복이 포함되지만 임의 정렬 기능을 사용하는 것보다 테이블 크기에 따라 더 잘 확장됩니다.
위 내용은 LINQ를 사용하여 데이터베이스에서 임의 행을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!