簡體   English   中英

將DataTable引入SQL Server的最快方法是什么?

[英]What is the fastest way to get a DataTable into SQL Server?

我在內存中有一個DataTable,我需要直接轉儲到SQL Server臨時表中。

插入數據后,我將其轉換一點,然后將這些記錄的子集插入永久表中。

此操作中最耗時的部分是將數據導入臨時表。

現在,我必須使用臨時表,因為這個應用程序的多個副本一次運行,我需要一層隔離,直到實際插入到永久表中。

從C#DataTable批量插入到SQL臨時表的最快方法是什么?

我不能使用任何第三方工具,因為我正在轉換內存中的數據。

我目前的方法是創建一個參數化的SqlCommand:

INSERT INTO #table (col1, col2, ... col200) VALUES (@col1, @col2, ... @col200)

然后為每一行清除並設置參數並執行。

必須有一種更有效的方式。 我能夠在幾秒鍾內讀取和寫入磁盤上的記錄......

您應該使用SqlBulkCopy

SqlBulkCopy將以非常快的速度獲取數據。

不久前在博客上寫了如何最大限度地提高性能。 那里有一些統計數據和例子。 我比較了兩種技術,1使用SqlDataAdapter,1使用SqlBulkCopy - 底線是批量插入100K記錄,數據適配器方法花費約25秒,相比之下,SqlBulkCopy只有~0.8s。

暫無
暫無

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

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