2012-03-22 195 views
0

我看到了圍繞同一主題的類似問題,但我無法解決我的問題。ADO.NET實體框架模型性能

我有一個帶有DB2後端的asp.net web應用程序。我們有實體框架模型3.5 因此,當我第一次加載頁面時,執行第一個查詢需要接近15秒。查詢非常簡單,從一個表中選擇一行並對where子句進行索引。這是查詢

protected Detail getProgramDetail(string id1,string id2, string id3) 
{ 
    Detail result = (from d in context.Detail 
      where d.id1.equals(id1) && 
      d.id2.equals(id2) && 
      d.id3.equals(id3) 
      select d).FirstorDefault(); 
    return result; 

    } 

我也試過更新統計數據,但它也沒有幫助。 在閱讀其他性能調整文章後,我將此查詢作爲編譯的查詢,但仍然花費近15秒。但隨後的調用在毫秒內相當快。我認爲它花費時間建立連接並運行查詢。

有沒有辦法提高初始性能?我試圖產生意見。但我收到以下錯誤。不知道如何處理這一個。

指定的存儲提供不能在配置中找到,或者 無效

我的連接字符串中machine.config中。

在此先感謝。 Srividhya

回答

0

有沒有辦法提高初始性能?

什麼不是ASp.NET /實體框架,但IIS - 啓動應用程序,包括做編譯需要;)?

讓它變熱 - 有一個擴展可以在IIS啓動時調用頁面,所以應用程序很熱(編譯,加載到內存中)。

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

+0

我確實爲DB2生成了視圖,但它的確幫助了我的性能,但並不是很激烈。由於我們仍在使用VS 2008,我無法嘗試編譯。仍然需要嘗試二級緩存。 - Srividhya 29秒前編輯 – Srividhya 2012-04-02 20:09:28

0

有您期待解決這個問題

1)添加第二級緩存與實體框架。本文多個選項是非常有幫助的 http://msdn.microsoft.com/hi-in/magazine/hh394143(en-us).aspx

2)查詢和ORM不會粘在一起很好,你可以使用存儲過程和Datareader,它肯定會優化性能。 3)如果您可以使用優化您的代碼中的第一個或默認設置

+1

我確實爲DB2生成了視圖,但確實對我的性能有所幫助,但並不是很激烈。由於我們仍在使用VS 2008,我無法嘗試編譯。仍然需要嘗試二級緩存。 – Srividhya 2012-04-02 20:08:30

+0

@Srividhya你有沒有嘗試優化第一或默認 – satish 2012-04-03 21:01:47