我知道,我今晚有問題模式,EF 4.1 Sql CE性能問題
我正在構建桌面應用程序。幸運的是我選擇了一個開放的架構,因爲我遇到了以下問題:
我的應用程序允許用戶添加操作。在我的測試中,我只添加了易於管理的小型(測試)操作。每個操作都被添加到當前是SQL CE 4.0數據庫的數據存儲中(首先使用EF 4.1代碼進行訪問,這非常棒)。
現在我使用更大的通用操作(數據庫中大約4000行)測試應用程序。而不是幾秒鐘,插入實際上需要幾分鐘!在大表中,只有1個外鍵,當然還有主鍵,但似乎4000行對它來說只是很多。
將所有行插入到1批次中,並且實際性能缺失位於SaveChanges命令上。
我關於使用手動查詢(未經測試)紅了,但這不是首選的選項,因爲事務不支持,它必須是一個孤立的操作。
那麼,我需要一個新的策略嗎?在SQL Server 2008上,您可以執行批量插入,但實際上也不受Sql Server CE支持。
客戶端解決方案與SQL Server CE和輕量級一樣靈活嗎? (例如,我不希望用戶安裝SQL Server,也不使用某些本地組件)。
我可以使用某些形式的序列化,但感覺像重新發明輪子,是很多工作(升級,完整性,多線程訪問等)。
提前致謝!
在插入的表格上是否有很多索引,或者是很多連接? 4000行看起來非常小,插入需要幾分鐘。 – taylonr 2011-04-13 19:57:49
不,沒有索引,只有1個外鍵和1個主鍵。事實上,只有4列只有4個整數 – Polity 2011-04-13 20:07:42
問題是我沒有intellitrace,真的看不到什麼在SaveChanges裏面。我只是看到時間消耗在那裏,只有一大堆數據 – Polity 2011-04-13 20:10:47