匯入大容量資料的基本原則

iSQlServer發表於2008-11-26

只能使用 bcp 命令、BULK INSERT 語句或 OPENROWSET(BULK) 函式從資料檔案大容量匯入資料。

注意:
可以編寫從物件而非文字檔案大容量匯入資料的自定義應用程式。若要從記憶體緩衝區大容量匯入資料,請使用 SQL Server Native Client (ODBC) 應用程式程式設計介面 (API) 的 bcp 擴充套件或 OLE DB IRowsetFastLoad 介面。若要從 C# 資料表大容量匯入資料,請使用 ADO.Net 大容量複製 API,即 SqlBulkCopy。
 

注意:
不支援將資料大容量匯入到遠端表中。
 


在將資料檔案中的資料大容量匯入到 Microsoft SQL Server 例項時,請使用以下原則:

為使用者帳戶獲取所需的許可權。
使用 bcp 實用工具、BULK INSERT 語句或 INSERT ...SELECT * FROM OPENROWSET(BULK...) 語句的使用者帳戶必須具有表的所需許可權,這些許可權由表所有者分配。有關每種方法所需許可權的詳細資訊,請參閱 bcp 實用工具、OPENROWSET (Transact-SQL) 和 BULK INSERT (Transact-SQL)。

使用大容量日誌恢復模式。
此原則適用於使用完整恢復模式的資料庫。對無索引表(“堆”)執行大容量操作時,大容量日誌恢復模式非常有用。使用大容量日誌恢復有助於防止事務日誌出現空間不足的情況,因為大容量日誌恢復不會插入日誌行。有關大容量日誌恢復模式的詳細資訊,請參閱在大容量日誌恢復模式下備份。
建議您在執行大容量匯入操作之前,先將資料庫改為使用大容量日誌恢復模式。之後應立即將資料庫重設為完整恢復模式。有關詳細資訊,請參閱從完整恢復模式或大容量日誌恢復模式切換。
注意:
有關如何在大容量匯入操作期間最小化日誌記錄的詳細資訊,請參閱在大容量匯入中按最小方式記錄日誌的前提條件。
 


大容量匯入資料後進行備份。
對於使用簡單恢復模式的資料庫,建議您在大容量匯入操作完成後執行完整備份或差異備份。有關詳細資訊,請參閱建立 SQL Server 資料庫的完整備份和差異備份。
對於大容量日誌恢復模式或完整恢復模式,只需執行日誌備份就足夠了。有關詳細資訊,請參閱建立事務日誌備份。

刪除表索引以提高大型大容量匯入操作的效能。
在匯入的資料量與表中已有資料量相比很大時,請使用此原則。在這種情況下,執行大容量匯入操作之前刪除表中的索引可顯著提高效能。
注意:
如果載入的資料量與表中已有的資料量相比較小時,刪除索引會適得其反。因為重建索引所需的時間可能要比大容量匯入操作期間所節省的時間更長。
 

有關詳細資訊,請參閱優化大容量匯入效能。

查詢並刪除資料檔案中的隱藏字元。
許多實用工具和文字編輯器都會顯示隱藏字元,這些隱藏字元通常位於資料檔案末尾。在大容量匯入操作期間,ASCII 資料檔案中的隱藏字元會導致問題,這些問題會引發“發現意外空字元”錯誤。查詢並刪除所有隱藏字元有助於避免此問題。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503395/,如需轉載,請註明出處,否則將追究法律責任。

相關文章