2011-02-18 100 views
2

我需要從SQL表中選擇一些100k +記錄並執行一些處理,然後對另一個表執行批量插入。我正在使用SQLBulkCopy來執行快速運行的批量插入。爲了獲得100k +記錄,我正在使用DataReader。快速選擇100K +記錄

問題:有時我在DataReader中發生超時錯誤。我把超時時間增加到了一些可管理的數字。

有沒有像SQLBulkCopy選擇批量記錄的記錄?

謝謝!
Bala

+1

爲什麼不在數據庫中進行處理,甚至只是在塊/頁面中獲取結果集? – 2011-02-18 10:14:28

+0

Bala你能告訴我們你在代碼中使用DataReader的方式嗎? – 2011-02-18 10:36:03

回答

4

它聽起來像你應該做的所有你的SQL Server內處理。或者將數據分成塊。

0

引自this msdn page

注意

無特殊優化技術用於批量出口業務存在。這些操作只需使用SELECT語句從源表中選擇數據。

但是,在同一頁上,它提到了bcp utlity可以將數據從SQL Server批量導出到文件。

我建議你嘗試使用bcp查詢,看看它是否顯着更快。如果不是,我會放棄並嘗試處理您的批處理大小,或者更難以將處理轉移到SQL Server中。