簡體   English   中英

如何使用C#將4,500,000條記錄快速插入sql server數據庫

[英]how to fast Insert 4,500,000 record into sql server database with c#

我在c#中有一個程序,使用ExecuteNoneQuery將4,500,000條記錄插入到sql中,並且插入時間太長,我需要一種快速的方法來插入,最多需要大約10分鍾,但是當我通過Management Studio從另一個表向我的表插入4,500,000條記錄時,它需要3分鍾

SqlBulkCopy類設計用於快速插入大量數據。

但是,您需要了解,通過這種大小,磁盤訪問速度和網絡延遲/帶寬/飽和度會發揮作用。

在同一台計算機上進行復制的情況下,從另一個表填充一個表的示例無效。

如Oded所述,此操作的起點是SqlBulkCopy。 但是,如果您可以控制數據庫,則還應檢查數據庫上的恢復模型是否設置為“簡單”或“批量記錄”。 否則,SQL Server創建日記帳分錄將遭受沉重打擊。 您還需要確保已設置TableLock的SqlBulkCopyOptions。

這兩個很簡單。 使用SqlBulCopy BatchSize設置和事務模型(請參見UseInternalTransaction)也很值得,但是這些設置很難給出建議,因為針對不同的場景,最佳設置可能會大不相同。 如果執行TableLock並檢查恢復模型並不能達到您想要的速度,則可以開始使用Batch Size,但是它更多地是灰色區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM