注册

c#下使用DmBulkCopy和DmBulkCopy2比对

zjhn 2026/02/03 416 2 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:我根据DM8程序员手册.pdf文档中,使用DmBulkCopy和DmBulkCopy2分别进行20w数据的插入,文档中推荐使用DmBulkCopy2来进行快速批量装载数据。但是根据我测试的几轮插入速度比对下俩DmBulkCopy2的速度比DmBulkCopy的速度慢是为什么?

代码
public static void BulkCopy1(DataTable dt)
{
var Db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "xxx",
DbType = SqlSugar.DbType.Dm,
IsAutoCloseConnection = true
});

var sw = Stopwatch.StartNew();
using var bc = new DmBulkCopy((DmConnection)Db.Ado.Connection)
{
DestinationTableName = "BB_999999_TMP",
BatchSize = 2000,
};
bc.WriteToServer(dt);
sw.Stop();
Console.WriteLine($"共插入{dt.Rows.Count}行,用时{sw.ElapsedMilliseconds}ms");

}

public static void BulkCopy2(DataTable dt)
{
var Db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "xxx",
DbType = SqlSugar.DbType.Dm,
IsAutoCloseConnection = true
});

var sw = Stopwatch.StartNew();
using var bc = new DmBulkCopy2((DmConnection)Db.Ado.Connection)
{
DestinationTableName = "BB_999999_TMP",
BatchSize = 2000,
schema = "BAZX"
};
bc.WriteToServer(dt);
sw.Stop();
Console.WriteLine($"共插入{dt.Rows.Count}行,用时{sw.ElapsedMilliseconds}ms");
}

DmbulkCopy 263000条 插入时间 53256ms
DmbulkCopy2 263000条 插入时间 108428ms

回答 0
暂无回答
扫一扫
联系客服