我正在迭代LINQ到SQL類的一組實例。LINQ到SQL和批量更改提交非常緩慢
在此迭代期間,我正在進行更改,標記一些用於刪除,甚至在datacontext中插入新的。當我完成迭代時,我會啓動context.SubmitChanges()
- 它可以工作,但速度非常慢。我在本地運行MSSQL 2008的快速版本。
另外,我注意到它生成的UPDATE語句,對於需要更新的行,它表示UPDATE SET ..... WHERE @p1 = ... AND @p2 = ...
即所有的字段/列。我已經在表中定義了主鍵,並且在DBML模式中定義了主鍵,但它似乎仍然在UPDATE語句的所有列上進行比較,而不僅僅是主鍵。
任何想法?
更新:
我擔心的一樣,那是因爲我已經忘記了定義主鍵和桌子上的必要的索引之後更新的LINQ到SQL模式。
有問題的卷大約是40k行,我對解決方案的性能感到非常滿意。
如果數量應該增加,我會研究Marc提到的併發檢查屬性。
它似乎像我的LINQ到SQL架構與數據庫架構不是最新的。更新並給它一個鏡頭。 任何想法仍然歡迎。 – Anders 2009-07-02 08:34:23
想要對行數進行一些估計?就像是2000萬或8000萬? – 2009-07-02 08:37:55