3

私は KendoUI グリッドを使用しており、その ToDataSourceResult を使用してデータをフィルター処理しています (ドキュメントで示唆されているように) が、パフォーマンスへの影響が心配です。

私の理解に基づいて、次の提案されたコードは、データベースからすべてのレコードをメモリに取得し、ToDataSourceResult 拡張メソッドを実行してメモリ内のレコードをフィルタリングします (LINQ 流れるような API の概念)。多くのレコードがある場合、これはパフォーマンスに大きな影響を与えますか?

「where」句を前もってデータベースにクエリすると、パフォーマンスが向上すると思います...アドバイスしてください。

これがドキュメントで提案されているものです

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

これは、ToDataSource フィルターを使用しない他のオプションです

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

1 に答える 1

6

メソッドが何をGetAll返すかによって異なります。LINQ 対応プロバイダー(Entity Framework、Linq to SQL など)IQueryableから返される場合、すべての操作は (メモリ内ではなく) データベース レベルで実行されます。すべてのレコードが返される場合 - ToDataSourceResult を使用する前でも問題があります。

于 2013-01-04T08:16:40.173 に答える