首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 海量資料匯入極速方案:BULK INSERT 實測 100 萬筆 < 20 秒

     編輯:關於SqlServer

專案需一次性匯入 200 萬筆資料,普通 INSERT 需數小時。評估 BCP(命令列、使用者體驗差)後,選擇 BULK INSERT:可程式化、介面友善、速度極快(100 萬筆 < 20 秒)。

三大缺點與對策

缺點對策
需獨佔目標表維護窗口執行或鎖定控制
產生大量交易記錄匯入前動態切換復原模式為 BULK_LOGGED,結束後改回 FULL
來源檔案格式限制犧牲少許速度可逐列精確控制

極速匯入標準腳本

ALTER DATABASE taxi SET RECOVERY BULK_LOGGED
GO

BULK INSERT taxi..detail FROM 'e:\out.txt'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    TABLOCK
)
GO

ALTER DATABASE taxi SET RECOVERY FULL
GO
  • TABLOCK:取得表級鎖定,提升大量載入效能。
  • BULK_LOGGED:最小化記錄量,避免記錄檔暴漲與 I/O 爭用。
  • 欄位/列終止符依實際檔案調整(CSV 常用 ',' + '\n')。

此方案在速度與可控性間取得最佳平衡,是百萬級以上資料初始化/遷移/同步的首選武器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved