Dot-Net
SqlBulkCopy 的推薦批量大小是多少?
推薦的批量大小是
SqlBulkCopy多少?我正在尋找一個通用公式,我可以將其用作性能調整的起點。
我有一個導入實用程序,它與我的 SQL Server 實例位於同一台物理伺服器上。使用自定義
IDataReader,它解析平面文件並使用SQLBulkCopy. 一個典型的文件有大約 6M 的合格行,平均 5 列十進制和短文本,每行大約 30 個字節。鑑於這種情況,我發現 5,000 的批量大小是速度和記憶體消耗的最佳折衷方案。我從 500 開始,然後嘗試更大。我發現 5000 平均比 500 快 2.5 倍。插入 600 萬行大約需要 30 秒,批量大小為 5,000,批量大小為 500 大約需要 80 秒。
10,000 並沒有明顯更快。提高到 50,000 將速度提高了幾個百分點,但不值得增加伺服器上的負載。超過 50,000 則顯示速度沒有提高。
這不是一個公式,但它是供您使用的另一個數據點。