2012-03-08 109 views
0

我有一個wpf應用程序,它將項目保存在SQL Server Compact Edition文件中。 該文件是從構成數據上下文的類列表中動態創建的。 當我遇到以下情況時,我遇到了加載時間較慢的問題。增加SQL精簡版讀取速度

試圖進入我的應用程序這個我加載加載包含ItemB

的列表在我的DataContext這個鏈接表1,鏈接表從表1爲表2和表2

意達的列表來自Sql Server的所有Table1行。 對於每個Table1行的返回,我將任何信息添加到New ItemA。然後,我查找通過鏈接錶鏈接到當前Table1行的任何Table2行。對於返回的所有Table2行,我將它們轉換爲ItemB列表並將它們添加到ItemA。

我最終得到了一個ItemA列表,每個對象都包含一個ItemB列表。問題是我正在對數據庫進行多次調用,並且在獲得幾百個項目時推動了加載時間。 沒有多次調用,有沒有更好的方法呢? 如果不是什麼是加快應用程序的最佳方式?我應該緩存ItemA嗎?如果是的話,最好的方法是做什麼?

+0

根據迄今爲止沒有答案,事實上,我設法加快應用程序(1分鐘加載時間到毫秒)的唯一方法是通過二進制序列化所有對象到磁盤並在加載時回到內存中,我想要徹底拋棄SQL Server CE。我想最終將此應用程序移植到Windows 8 Metro,因爲它不支持sql ce,這似乎是一個更令人信服的理由。 - 有沒有人有任何建議,我的序列化文件可以增長之前,它開始變得不可行或有任何其他原因,爲什麼這是一個壞主意? – Oli 2012-03-18 15:13:02

回答

0

沒有太多答案,但我相信sql ce對於上面提出的場景來說速度不夠快。因此,我將我的後備庫更改爲內存列表,並按照上面的註釋序列化爲文件。 經過一個月的測試,我沒有遇到任何問題,並大大提高了我的應用程序的速度。