-2

この単純な LINQ コードを可能な限り高速かつ効率的にする方法について、いくつかの提案をお願いします。

tbl_WatchList には 51996 行が含まれます

以下のテストは、VS2012 テスト エクスプローラーによると、実行に 2 秒かかります。

    [TestMethod]
    public void TestRemoveWatch()
    {
        using (var DB = new A4C_2012_devEntities())
        {
            var results = DB.tbl_WatchList.OrderByDescending(x => x.ID).Take(1);
            int WatchID = results.AsEnumerable().First().ID;
            Assert.IsTrue(WatchList.RemoveWatch(WatchID));
        }
    }
4

2 に答える 2

2

コレクション全体をソートする必要はありません。

int WatchID = DB.tbl_WatchList.Max(wl => wl.ID);

十分なはずです。

于 2013-10-28T11:38:03.667 に答える
1

最適化するには、次の手順を実行します。

  • プロファイリング ツール (SQL プロファイラーなど) を使用して、データベースに送信される SQL クエリを確認し、それらのクエリの実際のパフォーマンスを確認します。
  • 実行速度の遅いクエリを選択してクエリ プランを手動で分析するか、インデックス チューニング アドバイザーを使用して不足しているインデックスを確認します。
  • 不足しているインデックスを追加します。
于 2013-10-28T11:43:31.910 に答える