0

LINQ クエリがあります。クエリを実行すると、操作の実行に時間がかかります。クエリを変更してパフォーマンスを向上させるにはどうすればよいですか。これがLINQクエリです。

クエリ

var model = (from items in Db.Items
                         where items.ItemNo == DD.ItemNumber
                         select new ViewModel()
                         {
                             INo = items.ItemNo,
                             BTags = (from asd in Db.BibContents where asd.BibId == items.BibId && asd.TagNo == "245" && asd.Sfld == "a" select asd.Value).FirstOrDefault(),
                             Sid = (from stat in Db.ItemStatus1 where stat.Id == items.StatusId select stat.Description).FirstOrDefault(),
                             Option = DD.Option
                         }).ToList();
4

3 に答える 3

3

SQLプロファイラーとクエリアナライザーでクエリを分析する必要があります。問題はおそらくテーブルのインデックスです。

于 2012-11-29T12:05:07.120 に答える
0

EF がSelect N+1の問題を引き起こしていないことを確認します。

http://blogs.microsoft.co.il/blogs/gilf/archive/2010/08/18/select-n-1-problem-how-to-decrease-your-orm-performance.aspx

于 2012-11-30T01:50:16.203 に答える
0

まず第一に、クエリは常にデータベース オブジェクトを操作していますが、SQL ですべての作業を行い、結果のみを LINQ に渡すことをお勧めします。

これにより、おそらくパフォーマンスが向上します。

于 2012-11-29T13:02:34.560 に答える