2012-08-01 62 views
0

SaveChanges在保存大量記錄時看起來很慢,即使記錄的類型相同。下圖顯示了一個試圖保存約60000條記錄的性能分析會話,記錄是混合類型,但是其中很多都共享相同的類型。我的期望是由SaveChanges調用的CreateDbCommandDefinition將被調用一次每個記錄類型,令人驚訝的是它被分別調用每個記錄。這當然會導致糟糕的表現。SaveChanges查詢生成性能

我用EF 4.3.1和5.0檢查了這一點,結果相同。有沒有辦法配置EF的方式,它不會創建一個命令每個記錄插入/更新在數據庫中?

回答

2

EF在單獨的SQL命令中執行每個修改並單獨往返數據庫 - 這是性能不佳的主要原因。除非您從codeplex下載EF source code並自行執行命令批處理,否則目前無法更改此設置 - 甚至有related work itemfeature request