是否有任何ORM爲高速大容量刀片提供體面的方法?任何爲高速大容量插入提供體面方法的ORM?
我問的原因是Entity框架非常適合將數據拉出,但如果您希望插入速度超過每秒10行,則會完全落空。
更新
我目前將每秒使用一個DataTable和T-SQL 80000行,但它會是清潔的,如果我能全線使用ORM。
是否有任何ORM爲高速大容量刀片提供體面的方法?任何爲高速大容量插入提供體面方法的ORM?
我問的原因是Entity框架非常適合將數據拉出,但如果您希望插入速度超過每秒10行,則會完全落空。
更新
我目前將每秒使用一個DataTable和T-SQL 80000行,但它會是清潔的,如果我能全線使用ORM。
您可以使用EF後門程序,但反對使用ORM的常見理由之一是性能。
ORM旨在幫助提高可讀性/可編程性並縮短開發時間。如果你關心性能使用本地SQL。
恐怕你會發現ORM的是一個糟糕的選擇,以每秒80K做行。只是不能完成,除非你繞過Linq到T-SQL的轉換並直接對數據庫進行操作。但是你打敗了ORM的目的。即便如此,我仍然很難看到你將如何實現每秒80K行(儘管你沒有定義每行的寬度)。
像EF和Linq到SQL的ORM將在每次更新時發出單個Insert語句。這不利於80K /秒的吞吐率。國際海事組織,你應該使用像SSIS這樣的批量插入工具。這就是它設計的目的。
如果他們非常簡單的批量插入,那麼可以創建一個存儲過程,一次只讀50個,然後在EF中將其掛起來,這樣可以提高性能。但是,除了你完全正確之外,這並不是工作的最佳工具。 – Tridus
Blimey,問4年前?
嗯....
如果有人仍然這裏尋找答案,喬恩·瓦格納的Insight.Database(一個非常漂亮的微型ORM)支持SQL BULK INSERT。
我可以使用下面的語法很容易地編寫每秒200,000行 -
Database.Connection().BulkCopy("TableName", myListOfItemsToInsert);
請問
爲你工作?
行/秒是沒有用的措施,因爲您沒有指定它們有多寬。我可以說我的車可以達到「每小時1,000,000長度單位」,這是毫無意義的,不知道長度單位是多少。 – JNK
每行有25列。大多數表格沒有超過30列。無論我是否插入5列或25列的行,我發現行/秒測量結果都是相同的。 – Contango