場景:
從MySQL同步數個Table到MSSQL,採取先清空(Truncate Table)再寫入的策略;
因為某些Table筆數較多(約百萬筆),所以使用SqlBulkCopy類進行大量批次寫入。
做法:
1_取得各Table的筆數,設定SqlBulkCopy.BatchSize屬性=該Table筆數。
2_SqlBulkCopy.BulkCopyTimeout(逾時)設為0。
3_設定SqlBulkCopyOptions.TableLock,可以更快完成,但寫入期間會造成Table被鎖定。
→個人測試加入此選項反而增加30秒的寫入時間。
.net framework, sql — 2018年3月1日
Made with ❤ and at Taiwan.