2013-01-04 4 views
3

저는 KendoUI 그리드를 사용하고 ToDataSourceResult를 사용하여 데이터를 필터링합니다 (문서에서 제안한 것처럼).하지만 성능에 미치는 영향에 대해 걱정하고 있습니다.Kendo UI DataSourceRequest 성능 영향

내 이해를 바탕으로 다음 제안 된 코드는 데이터베이스의 모든 레코드를 메모리에 저장하고 performm ToDataSourceResult 확장 메서드를 사용하여 메모리 (LINQ 유창한 API 개념)의 레코드를 필터링합니다. 많은 레코드가 있으면 성능에 큰 영향을 미칩니 까?

"where"절을 사용하면 더 나은 성능을 얻을 수있는 데이터베이스에 대한 쿼리가 있다고 가정합니다 ... 조언하십시오.

다음은이 그것은 무엇을 당신의 GetAll 메소드가 리턴에 따라 ToDataSource 필터

var selectedCountries = _database.Countries.GetCountryStartWith("m") 

답변

6

를 사용하지 않고 다른 옵션이 문서

var countries = _database.Countries.GetAll(); 
return Json(countries.ToDataSourceResult(request, record => new 
{ 
    record.Id, 
    record.Name, 
    record.Currency, 
    record.TimeZone 
})); 

에서 제안거야. (Entity Framework, Linq에서 SQL 또는 다른 어떤 것)으로 IQueryable을 반환하면 모든 작업이 데이터베이스가 아닌 메모리 수준에서 수행됩니다. 모든 레코드를 반환하면 ToDataSourceResult를 사용하기 전에 문제가 발생합니다.

+0

감사합니다. Atanas, ya. 나는 EF를 사용하고있다. SQL 프로파일 링을 실행 한 후 "Lazy Loading"기능에 대해 알았고 네가 맞습니다.) –