[英]Bulk insert operations process records without errors
據我了解,使用C#和SQL Server批量插入數據的最佳方法是使用表類型並傳入數據表。 我們當前的處理流程是一次處理/插入一個記錄(即使有成千上萬條記錄)的數據,以便我們能夠成功處理有效記錄並報告錯誤。 顯然,這是一個巨大的性能問題。
有什么方法可以進行大容量插入操作,以允許插入有效記錄而使無效記錄失敗? 如果是這樣,您如何確定哪些記錄已通過以及哪些記錄失敗或導致了錯誤?
我認為只有SSIS才能做到您所描述的。 我過去所做的是使用SQLXML將數據批量加載到SQL Server( https://msdn.microsoft.com/zh-cn/library/ms171993.aspx )。
基本上我所做的是:
因此,這里的主要I / O包括:具有一個讀取器流以讀取XML,並具有2個寫入器流以寫入有效和無效的XML文件,最后批量裝入有效的XML文件。
順便說一句,性能很棒(我可以在不到5分鍾的時間內在筆記本電腦上批量加載1GB文件,但這取決於磁盤速度和CPU)。 內存利用率非常低。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.