[英]How to optimise inserting multiple records (with exists check) via Entity Framework
我有一個文件夾,里面有大約 200 個 csv 文件,每個文件包含大約 6000 行包含共同基金數據的數據。 我必須通過實體框架將這些逗號分隔的數據復制到數據庫中。
兩個主要對象是Mutual_Fund_Scheme_Details
和Mutual_Fund_NAV_Details
。
Mutual_Fund_Scheme_Details
- 這包含 Scheme_Name、Scheme_Code、Id、Last_Updated_On 等列。
Mutual_Fund_NAV_Details
- 這包含 Scheme_Id(外鍵)、NAV、NAV_Date。
CSV 中的每一行都包含上述所有列,因此在插入之前,我必須 -
所有存在檢查都是使用 ANY linq 擴展方法完成的,所有新條目都插入到DbContext
,但SaveChanges
方法僅在每個文件處理結束時調用。 我曾經在每次插入后調用它,但這只需要比現在更長的時間。
現在,由於這涉及至少兩個存在檢查,最多兩個插入和一個更新,每個文件的插入花費的時間太長,每個文件接近 5-7 分鍾。 我正在尋找改進這一點的建議。 任何幫助都會很有用。
具體來說,我希望:
使用 EF 將很難對其進行優化。 這是一個建議:
.Where( x => listOfIdsFromFile.Contains(x.Id))
進行存在檢查。 這應該適用於 6000 個 id,它將允許您將插入與更新分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.