그래서 나는 몇 가지 SQL 쿼리가 필요합니다. linq에서 생성 된 SQL은 매우 subpar 보인다 및 저장 프로 시저 시간이 초과되었습니다.Linq를 더 나은 sql 쿼리로 변환
다음은 내가하려는 일입니다.
두 테이블, 다음과 같이 :
dbo.Links
-------------
Id
Url
Title
그리고 내가하고 싶은 어떤이
dbo.Link_Counts
-----------------
Url
Count
처럼 보이는 또 다른 하나는이
var linkCounts = Links.GroupBy(x => x.Url)
.Select(grp => new Link_Counts
{
Url = grp.First().Url,
Count = grp.Count()
});
InsertAllOnSubmit(linkCounts);
SubmitChanges();
을하는 SQL 쿼리를 작성하다
일부 사용하려는 SQL은
입니다.INSERT INTO Link_Counts (Url, Count)
SELECT (
SELECT [t3].[URL]
FROM (
SELECT TOP (1) [t2].[URL]
FROM [Links] AS [t2]
WHERE (([t1].[URL] IS NULL) AND ([t2].[URL] IS NULL)) OR (([t1].[URL] IS NOT NULL) AND ([t2].[URL] IS NOT NULL) AND ([t1].[URL] = [t2].[URL]))
) AS [t3]
) AS [Url], [t1].[value] AS [Count]
FROM (
SELECT COUNT(*) AS [value], [t0].[URL]
FROM [Links] AS [t0]
GROUP BY [t0].[URL]
) AS [t1]
END
분명히 저장 프로 시저의 실행 시간이 너무 길었습니다.
도움이 될 것입니다.
insert into Link_Counts (Url, Count)
select Url, Count(*)
from dbo.Links
group by Url
죄송합니다 ... linq 쿼리에 대한 좋은 호출 –