UseParameter 效率问题 返回
救赎 发布于5天前
db.Insertable(List<实体>).UseParameter().ExecuteCommand()
请问大佬,为啥这种写法效率很低啊,实测批量写入100多条记录要1s左右
oracle 数据库 自增主键数据表
热忱回答(11)
-
救赎 VIP0
5天前sqlsugar 版本是 5.1.4.214 .net8.0框架
0 回复 -
fate sta VIP0
5天前0 回复 -
救赎 VIP0
3天前@fate sta: 核心插入语句是这个: await sqlSugarClient.Insertable(productionList).AS(tableName).UseParameter().ExecuteCommandAsync();
model:
public class EAPProductionData
{
/// <summary>
/// 主键ID(自增,缓存100)
/// </summary>
[SugarColumn(ColumnName = "ID", IsPrimaryKey = true, IsIdentity = true, IsOnlyIgnoreInsert = true)]
public long Id { get; set; }
/// <summary>
/// 消息ID
/// </summary>
[SugarColumn(ColumnName = "MESSAGEID")]
public string? MessageId { get; set; }
/// <summary>
/// 消息编码
/// </summary>
[SugarColumn(ColumnName = "MESSAGECODE")]
public string? MessageCode { get; set; }
/// <summary>
/// 资源名称
/// </summary>
[SugarColumn(ColumnName = "RESOURCENAME")]
public string? ResourceName { get; set; }
/// <summary>
/// 资源类型
/// </summary>
[SugarColumn(ColumnName = "RESOURCETYPE")]
public string? ResourceType { get; set; }
/// <summary>
/// 采集时间
/// </summary>
[SugarColumn(ColumnName = "COLLECTIONTIME")]
public DateTime? CollectionTime { get; set; }
/// <summary>
/// 测试类型
/// </summary>
[SugarColumn(ColumnName = "TESTTYPE")]
public string? TestType { get; set; }
/// <summary>
/// 测试描述
/// </summary>
[SugarColumn(ColumnName = "TESTDESCRIPTION")]
public string? TestDescription { get; set; }
/// <summary>
/// 测试值
/// </summary>
[SugarColumn(ColumnName = "TESTVALUE")]
public string? TestValue { get; set; }
/// <summary>
/// 标准值
/// </summary>
[SugarColumn(ColumnName = "STANDARDVALUE")]
public string? StandardValue { get; set; }
/// <summary>
/// 最大值
/// </summary>
[SugarColumn(ColumnName = "MAXVALUE")]
public string? MaxValue { get; set; }
/// <summary>
/// 最小值
/// </summary>
[SugarColumn(ColumnName = "MINVALUE")]
public string? MinValue { get; set; }
/// <summary>
/// 数值单位
/// </summary>
[SugarColumn(ColumnName = "VALUEUNIT")]
public string? ValueUnit { get; set; }
/// <summary>
/// 单位ID
/// </summary>
[SugarColumn(ColumnName = "UNITID")]
public string? UnitId { get; set; }
/// <summary>
/// 结果
/// </summary>
[SugarColumn(ColumnName = "RESULT")]
public string? Result { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[SugarColumn(ColumnName = "RESERVE1")]
public string? Reserve1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[SugarColumn(ColumnName = "RESERVE2")]
public string? Reserve2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[SugarColumn(ColumnName = "RESERVE3")]
public string? Reserve3 { get; set; }
/// <summary>
/// 录入时间
/// </summary>
[SugarColumn(ColumnName = "INTIME")]
public DateTime? InTime { get; set; }
/// <summary>
/// 测试序号
/// </summary>
[SugarColumn(ColumnName = "TESTSEQ")]
public long? TestSeq { get; set; }
/// <summary>
/// 最大预警值
/// </summary>
[SugarColumn(ColumnName = "MAXWARNVALUE")]
public string? MaxWarnValue { get; set; }
/// <summary>
/// 最小预警值
/// </summary>
[SugarColumn(ColumnName = "MINWARNVALUE")]
public string? MinWarnValue { get; set; }
/// <summary>
/// 预警结果
/// </summary>
[SugarColumn(ColumnName = "WARNRESULT")]
public string? WarnResult { get; set; }
/// <summary>
/// 面板ID
/// </summary>
[SugarColumn(ColumnName = "PANELID")]
public string? PanelId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
[SugarColumn(ColumnName = "EMPLOYEEID")]
public string? EmployeeId { get; set; }
/// <summary>
/// 配方名称
/// </summary>
[SugarColumn(ColumnName = "RECIPENAME")]
public string? RecipeName { get; set; }
}
是不是 AS(tableName) 影响了插入效率
0 回复 -
救赎 VIP0
3天前
await sqlSugarClient.Insertable(productionList).AS(tableName).UseParameter().ExecuteCommandAsync(); 使用UseParameter批量写入的速度还没有遍历快
0 回复 -
fate sta VIP0
2天前提提供模版提供DMEO.
0 回复 -
fate sta VIP0
2天前用新表并且自测
0 回复 -
fate sta VIP0
2天前0 回复 -
OsmondDeng VIP0
2天前把自增ID去掉,oracle的自增导致的
0 回复 -
fate sta VIP0
1天前orace自增底层不支持批量,性能差。可以用雪花ID或者序列实现。
0 回复 -
救赎 VIP0
8小时前@fate sta:好的,谢谢
0 回复 -
救赎 VIP0
8小时前@OsmondDeng:收到,,谢谢
0 回复