LINQ to SQL .Count는 처리 시간이 많이 걸리고 성능이 저하됩니다.LINQ to SQL .Count는 처리 시간이 많이 걸리고 성능이 저하됩니다.
나는 하나의 자식 (부모라고 부를 수 있음)에 대해 재귀 루프를 수행하고 있는데, 자식을 포함할지 여부를 결정하기 위해 자식 수를 확인해야합니다.
는 백작은 120 부모 레코드 8 MS :(.
어떤 아이디어가 빨리. 만들
LINQ to SQL .Count는 처리 시간이 많이 걸리고 성능이 저하됩니다.LINQ to SQL .Count는 처리 시간이 많이 걸리고 성능이 저하됩니다.
나는 하나의 자식 (부모라고 부를 수 있음)에 대해 재귀 루프를 수행하고 있는데, 자식을 포함할지 여부를 결정하기 위해 자식 수를 확인해야합니다.
는 백작은 120 부모 레코드 8 MS :(.
어떤 아이디어가 빨리. 만들
당신은 부모와 자식 요소의 수를 점점 데이터베이스에서 투사를 선택할 수 너무 느립니다 그것은 당신이 옆에 원하는대로.이 데이터베이스에 트립 라운드 피할 수있다.이 결과 이상과에
var query = from x in DataContext.Parents
select new {Parent = x, Count = x.Childs.Count() };
이제
루프.
y를하는 경우 OU 그냥 필터링 할 (= 절 곳) 아이 요소 수에 따라 다음과 같이 그것을 : SQL 꽤 확대됨에 있어야 할 SELECT COUNT(*)
에 IEnumerable.Count()
로 통화를 번역하려고합니다
var query = from x in DataContext.Parents
where c.Childs.Count() > 10
select x;
Linq에에.
결과 집합에 대해 반복적으로 수행하는 것처럼 들리는가 다른 각 결과에 대한 Linq-to-SQL 쿼리. 이 경우 많은 추가 데이터베이스 왕복을 수행 할 것이기 때문에 속도가 느려질 것입니다.
질문을 다시 작성하여 첫 번째 쿼리에서 바로 자녀 수를 함께 계산해야합니다.
다른 Linq-to-SQL 부모 및 자식 엔터티 집합이 있습니다 – soldieraman
그냥 자식 참조에 대한 'Count()'호출은 참으로 또 다른 linq-to-sql 쿼리입니다 (아주 간단하지만). 데이터베이스에 대한 다른 SQL 쿼리 왕복이 발생합니다. –
자네가 해결할 더 좋은 방법을 제안 해 주시겠습니까? – soldieraman
생성 된 SQL을 게시 할 수 있습니까? –
몇 개의 항목을 계산합니까? 당신이 접근 한 모범을 보여줄 수 있습니까? – Brettski
일부 코드 게시 - 실제 코드가 너무 크거나 게시 할 수없는 경우 동일한 동작으로 작은 예제를 작성하면 더 나은 답변을 얻을 수 있습니다. –