모듈을 개발하면 작은 선택, 삽입 및 업데이트가 많이 발생합니다. SubSonic.Query
네임 스페이스 (ActiveRecord is not my weapon of choice)의 명령으로 수정 한 내용은 LINQ
으로 작성된 개체 별 선택 쿼리보다 훨씬 빠르게 나타납니다.SubSonic LINQ 쿼리가 SubSonic.Query.Select보다 3 배 느립니다.
그것은 LINQ
쿼리 다음 실행 7.15s 소요 1000 배
Select
쿼리
long a = new SubSonic.Query.Select(provider, "UserId").From<User>()
.Where<User>(x => x.UserId == value).ExecuteScalar<long>();
의 수천 실행을위한 동안
long a = (
from u in UserCollection
where u.UserId == value
select u.UserId
).FirstOrDefault<long>();
LINQ of Subsonic. 프로파일 러는 DbQueryProvider.Execute
호출의 프로세서 시간 중 많은 부분이 DbQueryProvider.GetExecutionPlan
방법 (64 %)에서 소비됨을 알립니다. System.Linq.Expressions.Complie
에서 22 %가 소비되며, DbQueryProvider.Execute
은 6 %의 시간 만 사용합니다.
SubSonic LINQ 쿼리를 구문 분석하고 컴파일하는 방법을 완전히 만족합니다. 그러나 System.Data.Linq.CompiledQuery
을 Linq2Sql
과 같이 SubSonic LINQ 쿼리를 되돌리기위한 컴파일 기능이 있으면 좋을 것입니다.
정말 문제입니까? 그것은 진정한 목적을 위해 너무 느리게 보이지 않습니다. – ykatchou
실제 웹 응용 프로그램을 의미합니까? 이 문제는 저에게 중요한 문제입니다. 작은 선택 및 삽입으로 400k 트랜잭션을 수행하는 데 걸리는 시간을 상상해보십시오. SubSonic3은 삽입 + 선택을 허용하지 않으므로 기본 키를 선택해야합니다. – Mike