公司每天都會將包含潛在許多記錄(350,000)的文本文件放到我們的安全FTP上。我們已經創建了一個在早期運行的Windows服務,以便將文本文件讀入我們的SQL Server 2005數據庫表中。我們不做BULK插入,因爲數據是關係數據,我們需要根據數據庫中已有的數據進行檢查,以確保數據保持正常和一致。大數據服務體系結構
問題在於服務可能需要很長時間(小時)。這是有問題的,因爲它插入和更新到表中,這些表經常需要由我們的應用程序查詢和掃描,這可能會影響數據庫和應用程序的性能。
我們想到的一個解決方案是使用與我們的實時數據庫相同的表在單獨的數據庫上運行服務。服務完成後,我們可以在活動數據庫中執行BCP,以反映由服務創建的所有新記錄。
我從來沒有在數據庫中處理過數百萬條記錄,我不確定這樣的標準方法是什麼。這是做這種事情的適當方式嗎?有什麼建議麼?
+1 350.000行的批量插入應該在不到一分鐘內完成。 'merge'在2005年不可用,但是從這個問題來看,插入RealTable(col1,col2)從TempTable中選擇col1,col2在這裏可以工作 – Andomar 2010-07-22 15:12:21
啊我沒有注意到標籤 - 我會修改我的答案。不幸的是,OP還表示他不能批量插入。 – 2010-07-22 15:13:14