![](/img/trans.png)
[英]How to check if a record exists in the SQL Server database C# winform?
[英]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.