2012-05-07 167 views
0

我有一個txt文件(製表符分隔),其中有近1200條記錄。我正在做一個批量插入操作來從.txt文件中獲取數據到一個表 - 這個(結構)已經在數據庫中創建了。 我不知道爲什麼批量插入是永遠。關於何處/如何檢查導致此操作永久存在的原因的任何建議?謝謝。我之前也做過,它過去一直很好。有什麼理由?SQL Server 2008:批量插入永久

BULK INSERT DataFromatltemp 
FROM '\\abcd\Admin\temp\Copyatltemp07.txt' 
WITH 
(
    FIELDTERMINATOR = '\t', 
    ROWTERMINATOR = '\n' 
) 
GO 
+0

是否有任何打開的交易在這張桌子上工作? – pkmiec

+0

沒有這個表是未經修改過的,我創建它僅供我使用。謝謝。 – Nemo

+0

永遠定義:)?也許你的數據庫必須增長它的數據庫文件,因爲增長大小設置爲1MB。檢查數據庫選項,文件組和擴展文件和日誌文件的參數。 – YvesR

回答

-1

由於幾乎所有關係到RDBMS和性能,這取決於一系列的變量,但也有一些提示,你可以先看看:

  1. 數據庫:確保你的數據庫是使用簡單恢復模式;
  2. 目標表:清除所有約束(包括檢查,外鍵);
  3. 目標表:刪除所有索引;
  4. 目標表:確保未被任何其他進程鎖定;
  5. 源文件:保證沒有被任何其他進程鎖定;

我希望這個提示能夠有所幫助。

+0

單次恢復模式?清除約束和刪除索引?爲什麼要刪除所有索引來執行批量插入? – Diego

+1

@Diego,我使用「簡單恢復模式」的建議是不要記錄批量操作(這可能會導致不必要的磁盤開銷)。在目標表上刪除索引和外鍵的原因也是爲了避免磁盤開銷。也許我的建議不足以解決尼莫的問題,但你應該重新考慮稱他們是錯的。 –

+0

這是錯誤的。永遠不要在生產環境中使用單一恢復模式。清除所有約束並刪除所有索引是一個可怕的建議。在插入完成時數據完整性如何?沒有提及刪除和重新創建索引所需的時間? – Diego